2008-10-30 アーカイブ

http://hxxk.jp/2008/10/30/

各種ブラウザの CSS Selectors testsuite の検証結果のまとめ (:hover 擬似クラスや :active 擬似クラスや :focus 擬似クラスも含んだ 2008 年版 )

記事データ

投稿者

望月真琴

投稿日時

2008-10-30T22:21+09:00

タグ
概要

CSS Selectors testsuite を、 2008 年時点の各種ブラウザでテストし、かつオマケで :hover 擬似クラスや :active 擬似クラスや :focus 擬似クラスのテストも行って一覧表を作ってみました。

リプライ

リプライはまだありません。

記事本文

CSS Selectors test-suite およびダイナミック擬似クラスセレクタをチェックしてみた

CSS Selectors testsuite や、「 CSS の互換性と Internet Explorer 」などから自分用のまとめ表を作りたいで、 ......まあ、 CSS Selectors test-suite - CSS3 . info はセレクタだけのチェッカですし、 CSS の互換性と Internet Explorer と組み合わせてよいまとめが作れたらいいかなと思います と書いていましたが、とりあえず CSS Selectors test-suite にて、 CSS 2.1 のセレクタおよび CSS3 のセレクタについてまとめることにしました。

CSS Selectors test-suite だと :hover 擬似クラスや :active 擬似クラスや :focus 擬似クラスといったダイナミック擬似クラスまではテストできないので、昨日作って没にしかけた「 CSS の互換性と Internet Explorer 」およびその他のブラウザでのテストページでテストしました。 作っておいてよかったなあ......。

とりあえず、私の Windows 環境でテストできるブラウザについて表を作成してみました。 当時私がテストしたブラウザも念のため再確認してみたら、テスト内容が若干変更になったのか、異なる結果が返ってきました。 IE 7 正式版を含む各種ブラウザの CSS Selectors testsuite の検証結果のまとめではトラックバックにて Blog.okuryu : Safari の CSS セレクタ対応状況をお知らせいただいていたのですが、どなたか改めて Safari 1 、 Safari 2 、 MacIE 5 でテストしていただけると嬉しいです。

Lucky bag::blog の e-luck さんに検証していただいたので、 Safari 2 と Safari 1 と MacIE 5 の検証結果を追記しました。 しかし、 Safari 1 と MacIE 5 では CSS Selectors test-suite が動作しなかったとのこと。

CSS Selectors test-suite による各ブラウザの検証結果 2008 年版

CSS Selectors test-suite による各ブラウザの検証結果の一覧表
仕様レベル セレクタの形式 セレクタ名 Firefox 3 Firefox 2 Firefox 1 IE 8 Beta2 IE 7 IE 6 Opera 9 Opera 8 Safari 3 Safari 2 Safari 1 Google Chrome NN 8 NN 7 MacIE 5
仕様レベル セレクタの形式 セレクタ名 Firefox 3 Firefox 2 Firefox 1 IE 8 Beta2 IE 7 IE 6 Opera 9 Opera 8 Safari 3 Safari 2 Safari 1 Google Chrome NN 8 NN 7 MacIE 5
CSS 2.1 * ユニバーサルセレクタ 検証不可 検証不可
CSS1 E 要素型セレクタ 検証不可 検証不可
CSS1 .class クラスセレクタ 1/6 検証不可 検証不可
CSS1 #id ID セレクタ 検証不可 検証不可
CSS1 E F 子孫セレクタ 検証不可 検証不可
CSS 2.1 E > F 子供セレクタ 2/3 検証不可 検証不可
CSS 2.1 E + F 隣接兄弟セレクタ 1/3 検証不可 検証不可
CSS 2.1 E[attribute] 属性セレクタ(属性値に関わらず、その属性が指定されている) 2/7 2/7 4/7 検証不可 検証不可
CSS 2.1 E[attribute=value] 属性セレクタ(属性値がvalueに完全に一致する) 2/17 2/17 7/17 3/17 3/17 検証不可 2/17 2/17 検証不可
CSS 2.1 E[attribute~=value] 属性セレクタ(属性値がスペースで区切られたリストで、そのうちのひとつの属性値がvalueに完全に一致する) 2/17 2/17 1/17 9/17 3/17 検証不可 2/17 2/17 検証不可
CSS 2.1 E[attribute|=value] 属性セレクタ(属性値がハイフンで区切られたリストで、value-で始まる値である) 2/19 2/19 1/19 9/19 3/19 検証不可 2/19 2/19 検証不可
CSS 2.1 :first-child :first-child擬似クラス 1/7 1/7 1/7 5/7 1/7 1/7 検証不可 1/7 1/7 検証不可
CSS1 :link :link擬似クラス 検証不可 検証不可
CSS1 :visited :visited擬似クラス 検証不可 検証不可
CSS 2.1 :lang() :lang()擬似クラス 5/11 5/11 1/11 5/11 検証不可 検証不可
CSS 2.1 :before :before擬似要素 1/1 1/1 検証不可 1/1 検証不可
CSS3 ::before ::before擬似要素 1/1 1/1 1/1 検証不可 1/1 検証不可
CSS 2.1 :after :after擬似要素 1/1 1/1 検証不可 1/1 検証不可
CSS3 ::after ::after擬似要素 1/1 1/1 1/1 検証不可 1/1 検証不可
CSS1 :first-letter :first-letter擬似要素 検証不可 1/1 検証不可
CSS3 ::first-letter ::first-letter擬似要素 1/1 1/1 検証不可 1/1 検証不可
CSS1 :first-line :first-line擬似要素 検証不可 1/1 検証不可
CSS3 ::first-line ::first-line擬似要素 1/1 1/1 検証不可 1/1 検証不可
CSS3 E[attribute^=value] 属性セレクタ(属性値がvalueで始まる値である) 2/20 2/20 3/20 10/20 10/20 3/20 検証不可 2/20 2/20 検証不可
CSS3 E[attribute$=value] 属性セレクタ(属性値がvalueで終わる値である) 2/20 2/20 3/20 10/20 10/20 3/20 検証不可 2/20 2/20 検証不可
CSS3 E[attribute*=value] 属性セレクタ(属性値がvalueを含む値である) 2/16 2/16 3/16 10/16 10/16 3/16 検証不可 2/16 3/16 検証不可
CSS3 E ~ F 兄弟セレクタ 2/3 2/3 2/3 検証不可 2/3 検証不可
CSS3 :root :root 擬似クラス 1/1 1/1 1/1 1/1 検証不可 検証不可
CSS3 :last-child :last-child 擬似クラス 1/7 1/7 5/7 5/7 5/7 5/7 2/7 検証不可 1/7 1/7 検証不可
CSS3 :only-child :only-child 擬似クラス 1/5 1/5 3/5 3/5 3/5 3/5 2/5 検証不可 3/5 3/5 検証不可
CSS3 :nth-child() :nth-child() 擬似クラス 47/88 47/88 47/88 47/88 47/88 47/88 47/88 47/88 検証不可 47/88 47/88 検証不可
CSS3 :nth-last-child() :nth-last-child() 擬似クラス 47/88 47/88 47/88 47/88 47/88 47/88 47/88 47/88 検証不可 47/88 47/88 検証不可
CSS3 :first-of-type :first-of-type 擬似クラス 7/10 7/10 7/10 7/10 7/10 7/10 7/10 7/10 検証不可 7/10 7/10 検証不可
CSS3 :last-of-type :last-of-type 擬似クラス 7/10 7/10 7/10 7/10 7/10 7/10 7/10 7/10 検証不可 7/10 7/10 検証不可
CSS3 :only-of-type :only-of-type 擬似クラス 3/5 3/5 3/5 3/5 3/5 3/5 3/5 3/5 検証不可 3/5 3/5 検証不可
CSS3 :nth-of-type() :nth-of-type() 擬似クラス 47/88 47/88 47/88 47/88 47/88 47/88 47/88 47/88 検証不可 47/88 47/88 検証不可
CSS3 :nth-last-of-type() :nth-last-of-type() 擬似クラス 47/88 47/88 47/88 47/88 47/88 47/88 47/88 47/88 検証不可 47/88 47/88 検証不可
CSS3 :empty :empty 擬似クラス 1/6 1/6 2/6 2/6 2/6 2/6 4/6 検証不可 2/6 2/6 検証不可
CSS3 :not() :not() 擬似クラス 2/4 2/4 2/4 2/4 検証不可 検証不可
CSS3 :target :target 擬似クラス 1/3 1/3 1/3 1/3 検証不可 検証不可
CSS3 :enabled :enabled 擬似クラス 1/2 1/2 1/2 1/2 1/2 検証不可 1/2 1/2 検証不可
CSS3 :disabled :disabled 擬似クラス 1/2 1/2 1/2 1/2 1/2 検証不可 1/2 1/2 検証不可
CSS3 :checked :checked 擬似クラス 2/2 2/2 2/2 1/2 1/2 検証不可 検証不可
CSS1 a:hover a:hover 擬似クラス
CSS 2.1 :hover :hover 擬似クラス × ×
CSS1 a:active a:active 擬似クラス ×
CSS 2.1 :active :active 擬似クラス × × × ×
CSS 2.1 a:focus a:focus 擬似クラス × × ×
CSS 2.1 :focus :focus 擬似クラス × ×
CSS 3 ::selection ::selection 擬似要素 × × × × × × × × × ×

CSS3 のセレクタの実装もだいぶ進んでいる

Opera 9.61、 Safari 3.1.2、 Google Chrome 0.2.149.30 は全ての項目をクリアしていますね。 Firefox 3.0.3 と Internet Explorer 8 Beta2 も全てではありませんが実装が進んでいますので、これらのモダンブラウザの普及が進めば CSS3 のセレクタも実用性が増していくのではないでしょうか。

ただし、 Internet Explorer 8 Beta2 は「擬似要素を :: ( コロン 2 つ ) で、擬似クラスを : ( コロン 1 つ ) で区別する」という記述に対応していないため、 ::before 擬似要素、 ::after 擬似要素、 ::first-letter 擬似要素、 ::first-line 擬似要素を使う場合は留意する必要があるでしょう。

なお、擬似要素の :: による記法については 擬似要素を記述する際の TipsLucky bag::blog: 疑似要素の表記法を参照してください。 ......この段落、実は 2 年前の記事と同じ〆だったり。

リプライ

リプライはまだ送られていないか、管理者の承認待ち状態です。 この記事に対するご意見やご質問、ご感想などありましたら個別記事ページの送信フォームからお送り下さい。

補足情報

著作、講演、制作実績など