今日はCSSのセレクタの備忘録です。
以下のようなCSSの適用は良く行います。
1)Div要素にクラスをつけCSSを適用させます。
2)Span要素だけにCSSを適用させます。
で、更に一部だけのSpan要素に違うCSSを付けたいとき。。。有りますよね?
単純にクラスの中の要素にクラスを付けると?
下の例のようにDiv要素の中のspan要素にクラスspanClass1を付けても、思ったような挙動になりません。
「指定あり-divClass・SpanClass1」は
.spanClass1{ background: blue; color: white; }
としているので、バックグランドに青色、テキスト文字は白を期待するのですが、そのように表示されません。
じゃ、どうするか?
その際は下の例のように、Span要素にクラスを指定して.divClassの中のSpan要素のクラスspanClassが付いているものだけという設定をすることで可能になります。
.divClass span.spanClass2{ background: blue; color: white; }
idを付けるという手ももちろん有るのですが、要素が沢山あるとメンテがしずらいですから。
<html> <style> .divClass span{ background: red; color: black; } .spanClass1{ background: blue; color: white; } .divClass span.spanClass2{ background: blue; color: white; } </style> <body> <div> <span>指定なし</span> <span class='spanClass1'>指定あり-spanClass</span> </div> <br /> <div class='divClass'> <span>指定あり-divClass</span> <span class='spanClass1'>指定あり-divClass・SpanClass1</span> <span class='spanClass2'>指定あり-divClass・SpanClass2</span> </div> </body> </html>
CSSのセレクタは汎用性が有るで使いやすいですね。
その分奥が深くて、、、私もわからないことが多いので、勉強しなければいけないなって感じています。
今日は、CSSのセレクタのシステム開発備忘録でした。