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