У чому сенс використання цього синтаксису
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 { }
проти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, навіть якщо вони вкладені всередині іншого тегу.