offspring.js
2008年2月6日
- 追記
-
指摘がありました。
offspring.jsがあっても、IE6とIE7でCSSの擬似クラスを使えないとの事です。
このライブラリはIEのcss実装の不備を補完するものじゃなく、最初の子要素に自動的に追加されます。クラスが追加されるだけで擬似クラスをjsで実装してるわけではないようです。offspring.jsを読み込んでも、cssファイルに書いた、:first-child{….}はie系では無視されます。offspring.jsの作者は、ブラウザ間で実装の有無がある:first-childのような擬似クラスは「使わない」ことを提案しているようです。
今現在、CSSの擬似クラスをサポートしているのはSafari 3だけらしいのですが、IEなどでもCSSの代替え策として最初の子要素に自動的にclassを追加してくれるoffspring.jsをご紹介いたします。
CSSの擬似クラスの説明ですが、特定の要素に対してCSSの擬似クラスを使用すると不必要なIDやClassを使わなくとも、特定の表現ができたりします。例えば以下の擬似クラスなどは便利です。CSS擬似クラスの例を上げると
- :first-child
- 親要素の中で最初に現れる子供要素である場合にだけマッチする
- :last-child
- 親要素の中で最後に現れる子供要素である場合にだけマッチする
- :nth-child(#)
- 親要素の中で #番目の子要素だけにマッチする
その他にも:nth-child(even)や:only-child等かなり色々あります。詳しい解説についてはWWW WATCHさんのCSS セレクタに関するおさらい 2が丁寧にわかりやすく解説されています。
しかし現状では、IE6やIE7ではこのような擬似クラスはサポートされていません。そこでA List Apartで紹介されているKeeping Your Elements’ Kids in Line with Offspringの記事の中のoffspring.jsを使用する事でIE6やIE7でCSS擬似クラスの代替えとして使用することができます。Googlecodeに掲載されているサバージョンoffspringjsを直接ヘッダー内で外部スクリプトとして読み込めばOK。