Qual é o sentido de usar essa sintaxe
div.card > div.name
Qual é a diferença entre isso
div.card div.name
Qual é o sentido de usar essa sintaxe
div.card > div.name
Qual é a diferença entre isso
div.card div.name
Respostas:
A > B
selecionará apenas B filhos diretos para A (ou seja, não há outros elementos entre eles).
A B
selecionará qualquer B que esteja dentro de A, mesmo se houver outros elementos entre eles.
>
é o seletor filho. Ele especifica apenas os elementos filhos imediatos e não qualquer descendente (incluindo netos, netos etc.), como no segundo exemplo sem o >
.
O seletor filho não é suportado pelo IE 6 e inferior. Uma excelente tabela de compatibilidade está aqui .
div.card > div.name
corresponde, <div class='card'>....<div class='name'>xxx</div>...</div>
mas não corresponde<div class='card'>....<div class='foo'> ... <div class='name'>xxx</div>..</div>....</div>
div.card div.name
combina ambos.
Ou seja, o >
seletor garante que o elemento selecionado no lado direito do >
é um filho imidiado do elemento no lado esquerdo.
A sintaxe sem a >
correspondência com qualquer <div class='name'>
descendente (não apenas filho) de <div class='card'>
.
A> B seleciona B se for um filho direto de A, enquanto AB seleciona B se é um filho direto de B ou não.
<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>
Considere os dois cenários div > span { }
vs.div span { }
Aqui, o <space>
seleciona todos os <span>
elementos do <div>
elemento, mesmo que estejam dentro de outro elemento. O> seleciona todos os filhos do <div>
elemento, mas se eles estiverem dentro de outro elemento.
div > span {
color: #FFBA00 ;
}
<body>
<div>
<p>
<span>Hello,</span>
</p>
<span>World!</span>
</div>
</body>
Este apenas seleciona o <span>World!</span>
e não procura o <span>
interior<p>
etiqueta .
div span {
color: #FFBA00 ;
}
<body>
<div>
<p>
<span>Hello,</span>
</p>
<span>World!</span>
</div>
<body>
Este seleciona todas as tags de extensão, mesmo se estiverem aninhadas dentro de outra tag.