Quel est l'intérêt d'utiliser cette syntaxe
div.card > div.name
Quelle est la différence entre ceci
div.card div.name
css
css-selectors
Randy Mayer
la source
la source
Réponses:
A > B
sélectionnera uniquement B qui sont des enfants directs vers A (c'est-à-dire qu'il n'y a pas d'autres éléments entre eux).A B
sélectionnera n'importe quel B qui se trouve à l'intérieur de A, même s'il y a d'autres éléments entre eux.la source
>
est le sélecteur d'enfant. Il spécifie uniquement les éléments enfants immédiats et aucun descendant (y compris les petits-enfants, les petits-enfants, etc.) comme dans le deuxième exemple sans le>
.Le sélecteur enfant n'est pas pris en charge par IE 6 et les versions antérieures. Un excellent tableau de compatibilité est ici .
la source
div.card > div.name
correspond<div class='card'>....<div class='name'>xxx</div>...</div>
mais ne correspond pas<div class='card'>....<div class='foo'> ... <div class='name'>xxx</div>..</div>....</div>
div.card div.name
correspond aux deux.Autrement dit, le
>
sélecteur s'assure que l'élément sélectionné sur le côté droit de>
est un enfant immidiate de l'élément sur son côté gauche.La syntaxe sans les
>
correspondances avec tout<div class='name'>
descendant (pas seulement un enfant) de<div class='card'>
.la source
A> B sélectionne B s'il s'agit d'un enfant direct de A, tandis que AB sélectionne B s'il s'agit d'un enfant direct de B ou non.
la source
> vs espace
Considérez les deux scénarios
div > span { }
vs.div span { }
Ici, le
<space>
sélectionne tous les<span>
éléments de l'<div>
élément même s'ils sont à l'intérieur d'un autre élément. Le> sélectionne tous les enfants de l'<div>
élément mais s'ils sont à l'intérieur d'un autre élément.> (Supérieur à):
Celui-ci sélectionne simplement le
<span>World!</span>
et il ne cherchera pas la balise<span>
intérieure<p>
.Espace
Celui-ci sélectionne toutes les balises span, même si elles sont imbriquées dans une autre balise.
la source