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
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
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.
>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 .
div.card > div.namecorrespond <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'>.
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.
<p> USING SPACE </p>
<style>
.a .b {
background-color: red;
}
</style>
<span class="a">
a
<br>
<span class="b"> a b</span>
<br>
<span class="c">
<span class="b"> a b c</span>
</span>
</span>
<br><br>
<p> USING GREATER THAN SIGN</p>
<style>
.x > .y {
background-color: red;
}
</style>
<span class="x">
x
<br>
<span class="y"> x y</span>
<br>
<span class="z">
<span class="y"> x y z</span>
</span>
</span>
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.
div > span {
color: #FFBA00 ;
}
<body>
<div>
<p>
<span>Hello,</span>
</p>
<span>World!</span>
</div>
</body>
Celui-ci sélectionne simplement le <span>World!</span>et il ne cherchera pas la balise <span>intérieure <p>.
div span {
color: #FFBA00 ;
}
<body>
<div>
<p>
<span>Hello,</span>
</p>
<span>World!</span>
</div>
<body>
Celui-ci sélectionne toutes les balises span, même si elles sont imbriquées dans une autre balise.