5

私はIDを持つdivを持っています:

<div id="main">

の正しい(または違い)は何ですか

div#main {

#main {

よろしく、

4

4 に答える 4

3

効率的なCSSセレクターの使用に関する優れたドコがあり、過度に修飾されたセレクターを使用するルールに焦点を当てます。

IDセレクターは定義上一意です。タグまたはクラス修飾子を含めると、不必要に評価する必要のある冗長な情報が追加されるだけです。

idを持つ要素にスタイルを適用するだけでなく、セレクターは、それが(この順序で)mainでもあるかどうかをチェックすることによって要素を再修飾します。div明確にするために:cssセレクターは、jQueryなどで使用される場合の同じセレクター構文とは異なり、右から左に評価されます。

技術的には正しいですが、ルールの特異性を高めるためにこれに頼らなければならない場合は、作業中のCSSの構造が適切に考えられていない可能性がありますdiv#main#main

于 2012-05-28T22:37:26.810 に答える
2

違いは次のとおりです。

あなたが書くとき、div#mainスタイルは<div>要素のためだけになります。あなたが書くとき、それは、、、 など#mainのスタイルとして使用することができます。<div><span><p>

そして、推奨することは言うのが難しいです、それがそれを持っているすべての開発者はそれを持っています。したがって、たとえば span.<nameClass>、がネストされている場合などを使用し<li>ます。

#nav li span.href a {
 ...
}

特定の名前のクラスが1つの要素しか持てないようにしたい場合に使用されると思います。

ですから、あなたが書いたとき、span#hrefそれは他の人のためではなく、他の人のためだけに機能<span id="href">Simply dummy text</span>します。あなたが書くとき、#hrefそれはうまくいくでしょう、しかしあなたがこれについて<span id="href">Simply dummy text</span><a href="#" id="href">Link</a>尋ねるとき、両方とも正しいです。私が上で書いた違い。

于 2012-05-28T22:25:58.517 に答える
2

#mainID'main'のすべてに一致しますが、IDmainの要素div#mainのみに一致します。<div>

理想的には、同じIDを持つ2つの要素を持たないようにする必要があります。したがって、現実的には2つで違いはありませんが、指定divすることで結果をすばやく見つけることができるかどうかに関して、パフォーマンスに関連する問題が発生する可能性があります。

于 2012-05-28T22:26:52.087 に答える
1

どちらも正しいです。

div#mainはより具体的です#main。つまり、最初のセレクターで定義されたスタイルが2番目のセレクターのスタイルをオーバーライドします。

CSSの特異性についての良い紹介があります:http: //htmldog.com/guides/cssadvanced/specificity/

于 2012-05-28T22:29:29.843 に答える