初級篇★ページ作りの基礎知識2. スタイルシートを使ってみよう VOL3. スタイル設定の書式 その1★外部ファイルを作成する
3.「子孫セレクタ」 前章までで基本的なセレクタの書き方は解説したわけですが、HTML上での要素の配列に着目して、特定の条件下にある要素に対し、その条件を示すセレクタを設定して表示方法を指定するやり方があります。これは「子孫セレクタ」と呼ばれます。 子孫セレクタ { 設定 }
EX1.) 子要素に設定する 例えば<blockquote>で括られた引用の一部に<u>が含まれており、この部分のみ強調のために背景色を加えたいとします。通常なら u { background-color: #0c9; } と書けば良いわけですが、そのページ内の<blockquote>以外で括られた部分にも<u>が存在し、そちらは背景色を付けたくないとすれば、u に何らかのクラス設定をした上でHTMLから呼び出す必要が生じます。しかし、子孫セレクタを使って blockquote u { background-color: #0c9; } と書いておけば、HTML上の特定の<u>でクラスを呼び出す必要なく、<blockquote>で括られた中にある<u>のみに設定が反映されます。この場合、<p>や<blockquote>から見ると<u>は子要素ということになりますね。このように子孫セレクタは要素を並べてセレクタとすることで、特定の条件下にある要素にのみ設定を加えることが出来ます。
★blockquote u { 〜設定〜 } とした場合★ この例をCSSとHTMLで書くと以下のようになります。表示例をご覧になると分かると思いますが、<blockquote>で括られた間にある<u>〜</u>部分のみ、背景色が加わっており、<blockquote>より前にある<p>〜</p>間の<u>〜</u>は変化していません。
↓↓↓
EX2.) 孫要素に設定する 今度は、<div>に含まれる<p>内にある<u>で囲まれた部分のみ背景色を加えてみましょう。この場合は div u { background-color: #0f0; } と書きます。<div>から見ると<p>は子要素、<u>は孫要素ということになりますが、<div>に含まれる<u>ということで条件を特定出来ますので、真ん中の子要素<p>をセレクタに書き加える必要はありません。
★div u { 〜設定〜 } とした場合★
この例をCSSとHTMLで書くと以下のようになります。表示例をご覧になると分かると思いますが、<div>〜</div>間にある<u>で括られた部分のみ背景色が加わっており、<div>より前にある<p>〜</p>間の<u>〜</u>は変化していません。
↓↓↓
EX3.) クラスが設定された要素にも子孫セレクタを適用できる では、「div.special」というクラスの設定があり、その中の<p>で括られた中にある<u>部分のみ文字色を変えたいとしたら、どう書けばよいでしょうか。通常なら u { color: #0f0; } で良いわけですが、クラス呼び出しされていない<div>〜</div>間に含まれる<u>に影響を与えないためには、セレクタに<div class="special">〜</div>間の<u>のみという条件付けをしなければなりません。この場合は div.special u { color: #0f0; } と書きます。
★div.special u { 〜設定〜 } とした場合★
この例をCSSとHTMLで書くと以下のようになります。表示例では<div class="special">〜</div>間にある<u>〜<u>部分のみ文字が蛍光グリーンに変わっています。下の2段落のみテキストが青くなっているのは、「div.special」というクラスセレクタ自体にテキスト色を指定してあるためです。つまり青いテキスト部分のみが「.special」というクラスを指定されており、その中で特にアンダーラインを引かれている部分だけが子孫セレクタによって更に色を変えられているわけですね。
↓↓↓ ちょっとややこしいですが、子孫セレクタは要素を並べて条件付けしたセレクタであると覚えておかれると良いでしょう。
>> 初級篇2.VOL3.スタイル設定の書式・その1-3 〜書式に関する補足〜
|
2007.7.11.