私はIDを持つdivを持っています:
<div id="main">
の正しい(または違い)は何ですか
div#main {
と
#main {
よろしく、
効率的なCSSセレクターの使用に関する優れたドコがあり、過度に修飾されたセレクターを使用するルールに焦点を当てます。
IDセレクターは定義上一意です。タグまたはクラス修飾子を含めると、不必要に評価する必要のある冗長な情報が追加されるだけです。
idを持つ要素にスタイルを適用するだけでなく、セレクターは、それが(この順序で)main
でもあるかどうかをチェックすることによって要素を再修飾します。div
明確にするために:cssセレクターは、jQueryなどで使用される場合の同じセレクター構文とは異なり、右から左に評価されます。
技術的には正しいですが、ルールの特異性を高めるためにこれに頼らなければならない場合は、作業中のCSSの構造が適切に考えられていない可能性がありますdiv#main
。#main
。
違いは次のとおりです。
あなたが書くとき、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>
尋ねるとき、両方とも正しいです。私が上で書いた違い。
#main
ID'main'のすべてに一致しますが、IDmainの要素div#main
のみに一致します。<div>
理想的には、同じIDを持つ2つの要素を持たないようにする必要があります。したがって、現実的には2つで違いはありませんが、指定div
することで結果をすばやく見つけることができるかどうかに関して、パフォーマンスに関連する問題が発生する可能性があります。
どちらも正しいです。
div#main
はより具体的です#main
。つまり、最初のセレクターで定義されたスタイルが2番目のセレクターのスタイルをオーバーライドします。
CSSの特異性についての良い紹介があります:http: //htmldog.com/guides/cssadvanced/specificity/