Jaki jest sens używania tej składni
div.card > div.name
Jaka jest różnica między tym
div.card div.name
css
css-selectors
Randy Mayer
źródło
źródło
Odpowiedzi:
A > B
wybierze tylko B, które są bezpośrednimi potomkami A (to znaczy nie ma między nimi żadnych innych elementów).A B
wybierze dowolne B znajdujące się wewnątrz A, nawet jeśli między nimi są inne elementy.źródło
>
jest selektorem podrzędnym. Określa tylko bezpośrednie elementy podrzędne, a nie żadnych elementów podrzędnych (w tym wnuki, wnuki itp.), Jak w drugim przykładzie bez rozszerzenia>
.Selektor dziecka nie jest obsługiwany przez IE 6 i starsze. Świetna tabela kompatybilności jest tutaj .
źródło
div.card > div.name
pasuje,<div class='card'>....<div class='name'>xxx</div>...</div>
ale nie pasuje<div class='card'>....<div class='foo'> ... <div class='name'>xxx</div>..</div>....</div>
div.card div.name
pasuje do obu.Oznacza to, że
>
selektor zapewnia, że wybrany element po prawej stronie>
jest natychmiastowym dzieckiem elementu po jego lewej stronie.Składnia bez
>
dopasowań,<div class='name'>
która jest potomkiem (nie tylko dzieckiem)<div class='card'>
.źródło
A> B wybiera B, jeśli jest to bezpośrednie dziecko A, podczas gdy AB wybiera B, czy jest to bezpośrednie dziecko B, czy nie.
źródło
> vs Space
Rozważ dwa scenariusze
div > span { }
vs.div span { }
Tutaj
<space>
wybiera wszystkie<span>
elementy<div>
elementu, nawet jeśli znajdują się one wewnątrz innego elementu. > Wybiera wszystkie elementy podrzędne<div>
elementu, ale jeśli znajdują się one wewnątrz innego elementu.> (Większe niż):
Ten po prostu wybiera tag
<span>World!</span>
i nie będzie szukał<span>
wewnętrznego<p>
tagu.Przestrzeń
Ten wybiera wszystkie tagi span, nawet jeśli są zagnieżdżone w innym tagu.
źródło