CSS:全称セレクタの使用について

解決済みの質問

CSS:全称セレクタの使用について

CSSのスタイルの適用対象で、全ての範囲に適用される「*」ですが、分からないところがあります。

例:HTML
<h3>よく使う<em>セレクタ</em>の中で<i>最もよく使う<em>セレクタ</em></i></h3>

例1:CSS
* { color: red;}

例1の場合、全ての要素が対象となり、<h3>~</h3>内の全てが赤くなります。これは分かります。

例2:
h3 * { color: red;}

例2の場合、h3要素内の子要素に対して全て適用対象となるので、直接h3要素内にある、「よく使う」と「の中で」以外は全て赤になります。これも理解できます。

例3:
h3 * em { color: red;}

これが理解しづらいのですが、適用範囲は「h3内にある全ての子要素内のem要素」という解釈でよいのでしょうか?

回答よろしくお願いします。

投稿日時 - 2008-01-28 09:32:58

連想キーワード:

QNo.3720646

困ってます

質問者が選んだベストアンサー

スペースで繋ぐのは「子孫セレクタ」ですので、子要素だけでなく
孫要素やひ孫要素にも適用されます。例文の2番目の「セレクタ」の
ところがh3の孫ですね。継承しない属性について子セレクタと子孫
セレクタを比較してみるといいですよ。IE6は子セレクタ非対応なの
で要注意ですが。

というわけで、例3はh3の孫以下のem要素に適用され、h3の子のrm要
素には適用されないはずです。質問文で「子要素」となっているの
を「子孫要素」にすれば正解でいいと思います。

投稿日時 - 2008-01-28 10:00:03

お礼

回答ありがとうございます。

なるほど。

h3 * em { color: red;}

この部分は「*」のみではなく、スペースでつながっている、つまり子孫セレクタということですね。そして、h3要素の子孫要素となるわけですか。
これで理解できました。

ありがとうございました。

投稿日時 - 2008-01-28 20:00:56

0人が「このQ&Aが役に立った」と投票しています

あわせてチェックしたい
  • 全称セレクタについて ...
  • CSSのセレクタについて。 ...
  • CSSのセレクタに指定するbodyと*の違い ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら