2012-01-26 12 views
4

CSSとjQueryでセレクタを使用する場合、'E#id'#idの間に効率差がありますか?はいの場合は、特定のレイアウトエンジンまたはJavascriptエンジンにのみ適用されますか?セレクタのパフォーマンス - CSSとjQueryの 'E#id'と '#id' - CSSとjQueryの場合

+0

新しい(そして私の目立つ新機能の)ブラウザには、自分でテストできるCSSパフォーマンスインスペクタがあります。 – icktoofay

+1

私の意見では、 '' E#id ''を使う唯一の理由は、あなたがそのidを持つ要素を選択したいのであれば、それは正しい型です。とにかくそれを行うには良い方法ではありません。 (idは一意でなければならないので、同じページ上の異なる要素を区別するために使用すべきではありません。) – nnnnnn

+0

'id'はドキュメント内で一度しか出現しないので、そのセレクタの要素名の部分は必要ないはずです。 –

答えて

3

ブラウザはセレクタを右から左に読み込むので、idの前に何か接頭辞を付けることで得られることはほとんどありません。その時点では冗長です。出典: Writing Efficient CSS Mozillaから

ここにはreal world exampleがあります。 TL:DR;それは違いを生み出すほど重要ではないようです。 CSSのためのIDを使用することは良い習慣ではないと考えています以前Stack Overflow question

+2

実際、 'E#id'は'#id'よりも高い特異性を持っています。 [デモ](http://jsfiddle.net/x7Ahx/) – bookcasey

+1

@bookcasey質問には関係ありません。 OPは2つのセレクタ間の速度差にのみ関心があり、javascriptとセレクタエンジンに関する限りです。 –

+0

これは右から左へとは関係ありません。 – BoltClock

0

1)から

関連、さらに読書。 javascriptでコンテンツを操作するときに使用する必要があります。

2)タグ名ul.top-navまたはul#top-navで修飾されたCSSセレクタをオーバーライドすると、ブラウザのオーバーヘッドが増加するだけで、タグ&のクラス/ IDと一致する必要があります。したがって、セレクタを過度に修飾するのは避けてください。