Наприклад:
div > p.some_class {
/* Some declarations */
}
Що саме означає >
знак?
Наприклад:
div > p.some_class {
/* Some declarations */
}
Що саме означає >
знак?
Відповіді:
>
є дочірнім комбінатором , який іноді помилково називають комбінатором прямого нащадка. 1
Це означає, що селектор div > p.some_class
вибирає лише абзаци .some_class
, які вкладені безпосередньо в a div
, а не будь-які абзаци, які вкладені далі.
Ілюстрація:
<div>
<p class="some_class">Some text here</p> <!-- Selected [1] -->
<blockquote>
<p class="some_class">More text here</p> <!-- Not selected [2] -->
</blockquote>
</div>
Що вибрано, а що ні:
Вибране
Це p.some_class
розташоване безпосередньо всередині div
, отже, між обома елементами встановлюються відносини батько-дитина.
Не вибрано.
Це p.some_class
міститься в blockquote
межах div
, а не div
самому. Хоча це p.some_class
нащадок div
, це не дитина; це онук.
Отже, хоча div > p.some_class
цей елемент не буде відповідати, div p.some_class
буде, використовуючи нащадок комбінатор .
1 Багато людей йдуть далі, називаючи це "прямою дитиною" або "безпосередньою дитиною", але це зовсім непотрібно (і неймовірно дратує мене), оскільки дочірній елемент так чи інакший за визначенням , так що вони означають абсолютно те саме. Немає такого поняття, як "непряма дитина".
>
(більший за знак) - CSS Combinator.
Комбінатор - це те, що пояснює стосунки між селекторами.
Селектор CSS може містити більше одного простого селектора. Серед простих селекторів ми можемо включити комбінатор.
У CSS3 є чотири різні комбінатори:
Примітка: <
невірно в селекторах CSS.
Наприклад:
<!DOCTYPE html>
<html>
<head>
<style>
div > p {
background-color: yellow;
}
</style>
</head>
<body>
<div>
<p>Paragraph 1 in the div.</p>
<p>Paragraph 2 in the div.</p>
<span><p>Paragraph 3 in the div.</p></span> <!-- not Child but Descendant -->
</div>
<p>Paragraph 4. Not in a div.</p>
<p>Paragraph 5. Not in a div.</p>
</body>
</html>
Вихід:
.entry-content > * {"code" }
таке, за яким слідуєш .entry-content {"other code" }
? Не .entry-content > *
охоплює всіх дітей entry-content
?
Як згадують інші, це дитячий вибір. Ось відповідне посилання.
Усі p
теги з класом, some_class
які є прямими дітьми div
тегу.
<div>
<p class="some_class">lohrem text (it will be of red color )</p>
<div>
<p class="some_class">lohrem text (it will NOT be of red color)</p>
</div>
<p class="some_class">lohrem text (it will be of red color )</p>
</div>
css
div > p.some_class{
color:red;
}
Всі прямі діти, які <p>
з .some_class
отримаєте стиль , застосований до них.
(дочірній селектор) введено в css2. div p {} вибирає всі p елементи, відхилені від елементів div, тоді як div> p вибирає лише дочірні p елементи, а не діточку, велику дитину тощо.
<style>
div p{ color:red } /* match both p*/
div > p{ color:blue } /* match only first p*/
</style>
<div>
<p>para tag, child and decedent of p.</p>
<ul>
<li>
<p>para inside list. </p>
</li>
</ul>
</div>
Для отримання додаткової інформації про CSS Ce [lectors та їх використання, перегляньте мій блог, css селектори та css3 селектори
Більш великий селектор знаку (>) у CSS означає, що селектор праворуч є прямим нащадком / дочкою того, що знаходиться ліворуч.
Приклад:
article > p { }
Стиль означає лише абзац, який з’являється після статті.
#something a
що це вибір дитини.