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