Was bringt es, diese Syntax zu verwenden?
div.card > div.name
Was ist der Unterschied zwischen diesen
div.card div.name
css
css-selectors
Randy Mayer
quelle
quelle
Antworten:
A > B
wählt nur B aus, die A direkt untergeordnet sind (dh es gibt keine anderen Elemente dazwischen).A B
wählt jedes B aus, das sich in A befindet, auch wenn sich andere Elemente zwischen ihnen befinden.quelle
>
ist der untergeordnete Selektor. Es werden nur unmittelbare untergeordnete Elemente und keine Nachkommen (einschließlich Enkelkinder, Enkelkinder usw.) wie im zweiten Beispiel ohne das angegeben>
.Die untergeordnete Auswahl wird von IE 6 und niedriger nicht unterstützt. Eine großartige Kompatibilitätstabelle finden Sie hier .
quelle
div.card > div.name
passt,<div class='card'>....<div class='name'>xxx</div>...</div>
aber es passt nicht<div class='card'>....<div class='foo'> ... <div class='name'>xxx</div>..</div>....</div>
div.card div.name
passt zu beiden.Das heißt, der
>
Selektor stellt sicher, dass das ausgewählte Element auf der rechten Seite des>
Elements ein unmittelbares untergeordnetes Element des Elements auf der linken Seite ist.Die Syntax ohne die
>
entspricht einer<div class='name'>
, die ein Nachkomme (nicht nur ein Kind) von ist<div class='card'>
.quelle
A> B wählt B aus, wenn es sich um direkte Kinder von A handelt, während AB B auswählt, ob es sich um direkte Kinder von B handelt oder nicht.
quelle
> vs Space
Betrachten Sie die beiden Szenarien
div > span { }
vs.div span { }
Hier
<space>
wählt das alle<span>
Elemente des<div>
Elements aus, auch wenn sie sich in einem anderen Element befinden. Das> wählt alle untergeordneten<div>
Elemente des Elements aus, aber wenn sie sich in einem anderen Element befinden.> (Größer als):
Dieser wählt nur die aus
<span>World!</span>
und sucht nicht nach der<span>
Inside-<p>
Tag.Raum
Dieser wählt alle Span-Tags aus, auch wenn sie in einem anderen Tag verschachtelt sind.
quelle