Какой смысл использовать этот синтаксис
div.card > div.name
В чем разница между этим
div.card div.name
Какой смысл использовать этот синтаксис
div.card > div.name
В чем разница между этим
div.card div.name
Ответы:
A > B
будет выбирать только B, которые являются прямыми дочерними элементами для A (то есть между ними нет других элементов).
A B
выберет любые B, которые находятся внутри A, даже если между ними есть другие элементы.
>
является дочерним селектором. Он определяет только непосредственные дочерние элементы, а не потомков (включая внуков, правнуков и т. Д.), Как во втором примере без >
.
Дочерний селектор не поддерживается IE 6 и ниже. Большая таблица совместимости здесь .
div.card > div.name
совпадает, <div class='card'>....<div class='name'>xxx</div>...</div>
но не совпадает<div class='card'>....<div class='foo'> ... <div class='name'>xxx</div>..</div>....</div>
div.card div.name
соответствует обоим.
То есть >
селектор гарантирует, что выбранный элемент с правой стороны >
является непосредственным дочерним элементом элемента с левой стороны.
Синтаксис без >
совпадений, <div class='name'>
который является потомком (не только потомком) <div class='card'>
.
A> B выбирает B, если он является прямым потомком A, тогда как AB выбирает B, является ли он прямым потомком B или нет.
<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>
Рассмотрим два сценария div > span { }
vs.div span { }
Здесь <space>
выбираются все<span>
элементы <div>
элемента, даже если они находятся внутри другого элемента. > Выбирает всех дочерних элементов<div>
элементов элемента, но если они находятся внутри другого элемента.
div > span {
color: #FFBA00 ;
}
<body>
<div>
<p>
<span>Hello,</span>
</p>
<span>World!</span>
</div>
</body>
Этот просто выбирает <span>World!</span>
и не заглядывает <span>
внутрь<p>
тег.
div span {
color: #FFBA00 ;
}
<body>
<div>
<p>
<span>Hello,</span>
</p>
<span>World!</span>
</div>
<body>
Он выбирает все теги span, даже если они вложены в другой тег.