Qual é o sentido de usar essa sintaxe
div.card > div.name
Qual é a diferença entre isso
div.card div.name
css
css-selectors
Randy Mayer
fonte
fonte
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.fonte
>
é 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 .
fonte
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'>
.fonte
A> B seleciona B se for um filho direto de A, enquanto AB seleciona B se é um filho direto de B ou não.
fonte
> vs Espaço
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.> (Maior que):
Este apenas seleciona o
<span>World!</span>
e não procura o<span>
interior<p>
etiqueta .Espaço
Este seleciona todas as tags de extensão, mesmo se estiverem aninhadas dentro de outra tag.
fonte