cssセレクタで悩んだら

http://weblightenment.com/%E7%96%91%E4%BC%BC%E3%82%AF%E3%83%A9%E3%82%B9first-child%E3%81%8C%E5%8A%B9%E3%81%8B%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E8%A7%A3%E6%B1%BA%E6%B3%95/

<div>
<h2>見出し</h2>
<section>
テキストテキストテキスト
</section>
<section>
テキストテキストテキスト
</section>
</div>
ここで私はdivに含まれている初めのsectionにだけmargin-rightを効かせたかった。
そこで私ははいつものように

div{overflow:hidden;}
div section{float:left;}
div section:first-child{margin-right;}
てな具合で記述した。
がしかし効かない。
ので調べてみると、first-childという疑似クラスは親要素(この場合div)の一番初めに記述されているのが、h2なのでsectionタグは一番初めのタグではないから効かないということらしい。

ではこの場合どうしたらよいか。。。

隣接セレクタを使う

つまり

div>h2+section{margin-right:10px;}
とする。これでdivの子要素でh2の次のsectionタグを指定したことになる。

ちなみにsectionタグの次のsectionを指定したい時は

div>section+section{margin-right:10px;}
と記述する。

ちなみにこれらを教えてくれたのは

http://web-dd.net/?p=278

です。有難う。

疑似クラスにはまだまだいろいろなぞがありそうなので、今後より詳しく調べておこうと思う。

CSS3の出現によって疑似クラスも増えたし。ただブラウザによって機能しないものがまだまだあるようだ。。。

ちなみにfirst-childもIE6には対応していない。

ちなみに下のサイトいろいろ見やすくていい

http://w3g.jp/css/guide/pseudo