Если <p>
элемент находится сразу после <div>
элемента, разве это не означает, что <p>
элементу предшествует <div>
элемент?
Это верно. Другими словами, div + p
это собственное подмножество из div ~ p
- ничего подкреплялись прежний также соответствует последним, по необходимости.
Разница между +
и ~
заключается в том, что ~
соответствует всем следующим братьям и сестрам независимо от их близости от первого элемента, если они оба имеют одного и того же родителя.
Оба эти момента наиболее кратко проиллюстрированы на одном примере, где каждое правило применяет разные свойства. Обратите внимание, что к тому, p
который следует сразу за div
, применяются оба правила:
div + p {
color: red;
}
div ~ p {
background-color: yellow;
}
<section>
<div>Div</div>
<p>Paragraph</p>
<p>Paragraph</p>
<p>Paragraph</p>
</section>
<section>
No div
<p>Paragraph</p>
<p>Paragraph</p>
<p>Paragraph</p>
</section>
Во всяком случае, я ищу селектор, в котором я могу выбрать элемент, который находится непосредственно перед данным элементом.
К сожалению, пока нет .
+
является непосредственным следующийp
элемент и~
является все из следующихp
элементов (после каждогоdiv
элемента)