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.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'>
.
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.