2009-06-14 12 views
1

Was bedeuten diese beiden CSS-Selektoren?CSS-ID und Klassenselektoren

h1#myItemOne h2 
{ 
    background:#0099FF; 
    color: #A3F4A3; 
} 

h1.myItemTwo h2 
{ 
    background:#0099FF; 
    color: #A3F4A3; 
} 

Sind diese beiden Selektoren gültig?

Antwort

8

Die erste entspricht ein H2-Element, das eine Kind Nachfahre eines h1 Elements mit der ID ist myItemOne

Beispiel:

<h1 id="myItemOne"> 
    <h2>Me!</h2> 
</h2> 

Die zweite entspricht ein H2-Element, das ein Kind ist Nachkomme eines h1 Elements mit der KlassemyItemTwo

Beispiel:

<h1 class="myItemTwo"> 
    <h2>Me!</h2> 
</h2> 

Sie sind beide gültig. Der Hauptunterschied besteht darin, dass ID eindeutig sein sollte. Die Klasse hat diese Anforderung nicht.

Referenz: http://www.w3.org/TR/CSS2/selector.html

+2

Wo Sie "Kind" sagen, ich glaube, Sie "Nachkomme" bedeuten. h2 muss in keinem der Selektoren ein direktes Kind sein. Wenn du direkt child willst, benutze etwas wie "h1.myItemTwo> h2". –

+0

Schöne Ergänzung über den Unterschied in Kind und Nachkommen Laurence. Ich füge hinzu, ich glaube nicht, dass der Child Selector> in IE6 und darunter unterstützt wird, möglicherweise auch einige andere ältere Browser. – Pricey

1
h1#myItemOne h2 { background:#0099FF; color: #A3F4A3; } 

bedeutet jede h2, die ein Nachkomme einer h1 Element mit ID gleich "myItemOne" ist

h1.myItemTwo h2 { background:#0099FF; color: #A3F4A3; } 

jede h2 bedeutet, dass ein Nachkomme eines h1 Element ist mit Klasse gleich "myItemOne"

0

"#" definiert eine eindeutige ID in einer Seite, der Punkt definiert eine Klasse, die Sie an mehreren Stellen verwenden können.

Verbrauch:

<h1 id="...."></h1> 
<h1 class="...."></h1>