次のdivがあるとします。
<div class="sectionA" id="content">
Lorem Ipsum...
</div>
「id='content'
AND class='myClass'
のdiv」という概念を表現するスタイルを定義する方法はありますか?
それとも、単純にどちらかの方向に行ったのでしょうか。
<div class="content-sectionA">
Lorem Ipsum...
</div>
または
<div id="content-sectionA">
Lorem Ipsum...
</div>
あなたのスタイルシートで:
div#content.myClass
編集:これらも役に立つかもしれません:
div#content.myClass.aSecondClass.aThirdClass /* Won't work in IE6, but valid */
div.firstClass.secondClass /* ditto */
そして、あなたの例ごとに:
div#content.sectionA
編集、4年後:これは超古くて人々がそれを見つけ続けるので:しないでくださいセレクター。 tagNameは不要なフィルタリングステップを追加するため、#content.myClass
はdiv#content.myClass
よりも高速です。 セレクタにtagNamesを使用するのは、必要な場所だけにしてください。
Cssの#header .callout
と#header.callout
には違いがあります。
これが#header .callout
の「わかりやすい英語」です。
クラス名がcallout
で、IDがheader
の要素の子孫であるすべての要素を選択します。
そして#header.callout
は次のことを意味します。
IDがheader
でクラス名がcallout
のエレメントを選択してください。
もっと読むことができます css tricks
通常、idは常に一意であるため、idで指定された要素を分類する必要はありませんが、本当に必要な場合は、次のようにします。
div#content.sectionA {
/* ... */
}
1つの要素でidとクラスを組み合わせることに問題はありませんが、1つの規則に対して両方でそれを識別する必要はありません。あなたが本当に欲しいなら、あなたはすることができます:
#content.sectionA{some rules}
他の人が示唆しているように、IDの前にdiv
は必要ありません。
一般的に、その要素に特有のCSSルールはIDで設定されるべきであり、それらはクラスだけのものより大きな重みを持っていることになるでしょう。クラスで指定されたルールは、調整が必要なときにいつでも複数の場所で変更したくない複数の項目に適用されるプロパティです。
結局これは結局のところ:
.sectionA{some general rules here}
#content{specific rules, and overrides for things in .sectionA}
理にかなって?
あなたはcan CSSでIDとClassを組み合わせることができますが、IDは一意になるように意図されているので、CSSセレクタにクラスを追加することはそれを過修飾するでしょう。
cSSのタグ変数にtag.id ; tag#class
を使用します。
私はあなたがすべて間違っていると思います。クラス対IDは、特定性の問題ではありません。論理的な用途はまったく異なります。
IDはページの特定の部分を識別するために使用されるべきです:ヘッダー、ナビゲーションバー、メイン記事、作家の属性、フッター。
クラスはページにスタイルを適用するために使用されるべきです。一般の雑誌サイトがあるとしましょう。サイトのすべてのページに同じ要素(ヘッダー、ナビゲーション、メイン記事、サイドバー、フッター)が追加されます。しかし、あなたの雑誌は経済学、スポーツ、娯楽の異なるセクションを持っています。あなたは3つのセクションに異なった外観を持たせたい - 経済学保守的で正方形、スポーツアクションy、娯楽の明るさと若さ。
そのためにクラスを使います。あなたは複数のIDを作る必要はありません - #conomics-articleと#sports-articleと#entertainment-article。それは意味がありません。そうではなく、.economics、sports、および.entertainmentの3つのクラスを定義してから、それぞれの#nav、#article、および#footerのIDを定義します。
IDはドキュメント全体で一意であると想定されているため、両方に基づいて選択する必要はありません。 class="class1 class2"
を使えば、要素に複数のクラスを割り当てることができます。