CSSの特徴を把握しよう
CSSにはいくつかの特徴があります。これらを早いうちに理解しておくと、ウェブ制作の作業効率が格段に上がります。逆に、これらの特徴を理解しておかないと、無駄な記述を増やしたり思い通りに表示されない現象に遭遇します。細かい部分に着手する前に、全体像を把握しておきましょう。
これから解説する内容は大きく分けて次の三つになります。
カスケード
CSSは「Cascading Style Sheets(カスケーディング・スタイル・シート)」の略です。そのため、名前の由来となった「カスケード」の概念を正しく理解することが最初の第一歩です。カスケードを和訳すると「滝状の流れ」です。それをイメージすると、上から下へ流れる水となります。つまり、CSSは上から下へ処理されていくスタイルシートなのです。
具体的に言うと、先に書かれたスタイルは後に書かれたスタイルに上書きされます。同じ名前のセレクタに別のプロパティが指定されていれば追加されます。同じ名前のセレクタの同じプロパティに別の値が指定されていれば、先に書かれていた内容が破棄されて後に書かれたものが採用されます。もちろん、全ての内容が重複していなければ上書きは起こりません。
/* 同じセレクタに複数のプロパティを指定すると */
h1 { font-size: 1.5rem;}
h1 { color: #600;}
/* 追加されて以下と同じ意味合いになる */
h1 {
font-size: 1.5rem;
color: #600;
}
/* 同じセレクタの同種のプロパティに異なる値を指定すると */
h1 { font-size: 1.5rem;}
h1 { font-size: 2rem;}
/* 後に書いた値で上書きされる */
h1 {
font-size: 2rem;
}
このように、CSSは上から下へ流れるように処理されていくものだ、ということを覚えておいてください。ただし、以降で説明する「詳細度・特異性」によって採用されるスタイルの優先度が変わります。
継承
HTMLは入れ子構造でマークアップしていくため、要素同士の親子関係が生まれやすくなります。親要素に指定されたスタイルの中には、子要素にも引き継がれるものがあります。これを「継承」と言います。プロパティによって継承「する/しない」の初期値が定義されています。
各プロパティの継承は、初期値の振る舞いを覚えた上でマークアップするか、継承を制御するプロパティを使って個別に変更できます。例えば、ある親要素の文字色を指定した場合、その値は子要素にも引き継がれます。
<p style="color: #990000;">
テキスト <span style="font-weight: bold;">太字の子要素</span> テキスト。
</p>
上記の例では、<span>に囲まれた文字列が、太字として表示されるだけでなく、赤い文字として表示されます。これは親要素に指定されたスタイルが子要素へと継承されたことを意味します。実際に<span>に対して文字色の変更は指定されていませんが、そのように表示されるからです。
