★CSSの基本
| スタイルの継承
⬛︎ 親要素から子要素へのスタイルの継承プロパティには、親要素に指定した値が子要素に継承されるものと継承されないものがあります。 継承されるものには文字色や文字サイズに関するプロパティなどがありますが、 例えば、以下のように文字色を指定した場合、子要素に文字色を指定しなくても親要素で指定した色が継承して適用されます。
例:値が継承されるプロパティ
div.sample1 {color:blue;} <!--子要素のp要素にも値が継承される--> <div class="sample1"> ここの文字色は青です。 <p>ここの文字色も青くなります。</p> </div> ↓↓↓
ブラウザ上の表示
ここの文字色は青です。
ここの文字色も青くなります。 一方、ボーダー・マージン・パディング・背景画像など、値が継承されないプロパティもあります。 例えば、以下のようにボーダーを指定した場合、<div>要素全体はボーダーで囲まれますが、その子要素には継承されません。
例:値が継承されないプロパティ
div.sample2 {border:1px solid #000000;} <!--子要素のp要素には値が継承されない--> <div class="sample2"> ここはボーダーで囲まれます。 <p>ここはボーダーで囲まれません。</p> </div> ↓↓↓
ブラウザ上の表示
ここはボーダーで囲まれます。
ここはボーダーで囲まれません。 ⬛︎ inheritを指定すると強制的に値を継承
ほぼすべてのプロパティには、親要素の値を強制的に継承するinheritという値を指定することができます。 この値を指定することで、通常は値を継承しないボーダー・マージン・パディング・背景画像などのプロパティも値を継承するようになります。
尚、Internet Explorer7以前は、inheritの指定をサポートしていないので注意してください。Internet Explorer8ではサポートされています。
例:inheritで強制的に値を継承するdiv.sample3 {border:1px solid #000000;} p.sample4 {border:inherit;} <!--通常は継承されないボーダーの値がp要素にも継承される--> <div class="sample3"> ここはボーダーで囲まれます。 <p class="sample4">親要素の値が継承されて、ここもボーダーで囲まれます。</p> </div> ↓↓↓
ブラウザ上の表示
ここはボーダーで囲まれます。
親要素の値が継承されて、ここもボーダーで囲まれます。 ⬛︎ 相対的な値の継承
親要素から子要素へ文字サイズなどの値が継承される場合、 pt・pxなどの単位の場合にはそのままの値が継承されますが、 他の要素サイズとの関係で算出される%・em・exなどの相対的な単位の場合には、 親要素と子要素の値を掛け合わせた結果の値が継承されます。
例:相対的な値の継承
div.sample5 {font-size:90%;} p.sample6 {font-size:90%;} <!--親要素と子要素の値を掛け合わせた結果の値が子要素に適用される--> <div class="sample5" > ここの文字サイズは90%です。 <p class="sample6">ここの文字サイズは90%×90%=81%となります。</p> </div> ↓↓↓
ブラウザ上の表示
ここの文字サイズは90%です。
ここの文字サイズは90%×90%=81%となります。 |