2016-04-27 10 views
5

理論的にはCSSの子セレクタがタグセレクタより効率的です。しかし、あなたがクラスを持っていて、このクラス要素内の特定のタグをスタイルする必要がありますが、それらは最初のレベルの子ではありません。CSSの複数の子セレクタと単一のタグセレクタのパフォーマンス

.styled-table td{ 
    // Some cell styles 
} 

これらの優れたCSSのパフォーマンスの練習です

.styled-table > tbody > tr > td{ 
    // Some cell styles 
} 

VS:

は例を見てみましょうか?

MDNパー
+1

"クラスがあり、このクラス要素内の特定のタグをスタイルする必要がありますが、それらは最初のレベルの子ではありません。その後、パフォーマンスは完全に無関係になります。 – BoltClock

+1

CSSはインタプリタによって右から左に読み込まれ、短いセレクタは===より多くのパフォーマンスが得られます。 –

答えて

5

:子孫セレクタを避け〜

子孫セレクタはCSSの中で最も高価なセレクタです。が恐ろしくで、セレクタがタグまたはユニバーサルカテゴリにある場合は特に高価です。あなたは子孫セレクタと、CSSエンジンは(この場合tdタグ内)の一致を探している(この場合.styled-tableで)親要素のそれぞれの子をチェックし、論理的を通してそれを考える場合

し、各それらの子供の子供など、など。

子セレクタを使用すると、一致するものを探すためにどの「パス」を正確にエンジンに伝えているのでしょうか。パスの任意のポイントで一致するものが見つからない場合(たとえば、.styled-tableに直接の子の1つとしてtbodyがない場合)、セレクタを放棄します。

+0

あなたがMDNの文書に投稿したリンクによれば、それらのガイドラインは2000年に書かれたものであり、最新のブラウザーとの関連性はなくなりました。 – fbid

+1

おっと、私はそれを知っていましたが、Googleにポップアップしたとき、2016年1月15日の日付が付けられていたため、更新されたと見なしました。グーグルグーグルでは、両方のセレクタのパフォーマンスが他のセレクタに比べて劣り、子セレクタが子セレクタよりも優れたパフォーマンスを発揮することがわかります。 – Shaggy

関連する問題