色々書いてますが、CSS系を書こうと思います。今回は優先順位について
以下ウィキペ引用
優先順位
CSS は必ずしも一つのところで一意に指定できず、そのため指定内容の衝突を避けるために優先順位がユーザエージェントによって計算される。その結果は、以下のような条件により算出される。
作成者スタイルシートはユーザスタイルシートより優先される
デフォルトスタイルシートは他のスタイルシートを優先する
最重要指定されている宣言はユーザスタイルシートが作成者スタイルシートより優先される(CSS1では逆)
外部から読み込んだものは読み込んだ先とまとめて扱う
詳細度によって整理する
そのセレクタ内で指定先を一意に決められるもの(IDの類)が多い方を優先する
IDの類による優先順位が同じ場合は、属性や擬似クラスの数が多い方を優先する
それでも優先順位が決まらない場合は、要素の数が多い方を優先する
これでもまだ優先順位が同一の場合、作成者スタイルシートにおいて以下の順で優先する
インラインのもの
外部からのもの
HTMLのalign属性など、CSS以外によるスタイルの指定は、それと等価なCSSによるスタイル指定が製作者スタイルシートの先頭にあるものとして扱う。ただし、これらの詳細度は最も低いものとする(CSS1においては要素名による指定を一つだけ含むセレクタと同じ詳細度)
記載可能な方法の詳細は次の通りで、一般的に優先される順位で並び替えている(CSS2で最重要指定の優先順位の仕様が変更されている、勧告6章4)。
ユーザスタイルシート中で最重要指定された宣言 - ユーザエージェントの設定のスタイルの中で!importantを宣言に付加する
作成者スタイルシート中で最重要指定された宣言 - 作成者が内容に付随させたスタイル中で!importantを宣言に付加する。
作成者スタイルシート中の通常の宣言
ユーザスタイルシート中の通常の宣言
デフォルトスタイルシートの宣言
作成者スタイルシートの記述方法による優先順位は以下の通り。
特定の要素にスタイルを記述する
HTMLやXMLのヘッダ部にそのページ全体を対象にスタイルを定義する
CSSのみを記述した外部ファイルを用意し、HTMLファイルのヘッダ部からリンクを張ってスタイルを参照させる
完全に頭に入っていなくてもある程度のレベルまではいけてしまいますが、最終的に自由に組みたいと思うなら必須ですよね。