То, как это формулирует w3schools , звучит одинаково.
div + p
Выбирает все<p>
элементы, которые помещаются сразу после<div>
элементов
div ~ p
Выбирает каждый<p>
элемент, которому предшествует<div>
элемент
Если <p>
элемент находится сразу после <div>
элемента, разве это не означает, что <p>
элементу предшествует <div>
элемент?
Во всяком случае, я ищу селектор, в котором я могу выбрать элемент, который находится непосредственно перед данным элементом.
css
css-selectors
user4055428
источник
источник
+
является непосредственным следующийp
элемент и~
является все из следующихp
элементов (после каждогоdiv
элемента)before
. невозможно. только с javascript. вам придется искать его, и всеbefore
это класс, на который нацелен ваш CSS.Ответы:
Смежные одноуровневые селекторы X + Y
ul + p { color: red; }
Показать фрагмент кода
ul + p { color: red; }
<div id="container"> <ul> <li>List Item</li> <li>List Item</li> <li>List Item</li> <li>List Item</li> </ul> <p>This will be red</p> <p>This will be black</p> <p>This will be black</p> </div>
Общие родственные селекторы X ~ Y
ul ~ p { color: red; }
Показать фрагмент кода
ul ~ p { color: red; }
<div id="container"> <ul> <li>List Item <ul> <li>Child</li> </ul> </li> <li>List Item</li> <li>List Item</li> <li>List Item</li> </ul> <p>This will be red.</p> <p>This will be red.</p> <p>This will be red.</p> <p>This will be red.</p> </div>
Источник
code.tutsplus
Общие родственные селекторы MDN
Смежные одноуровневые селекторы w3
источник
Это верно. Другими словами,
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 { /* the first p immediately after a preceding p */ color: red; } p ~ p { /* all p's after a preceding p */ font-weight: bold; }
<div> <p>1</p> <div>separator</div> <p>2</p> <!-- only ~ is applied here --> <p>3</p> <!-- both + and ~ are applied here --> </div>
источник
1) Смежные селекторные элементы (S1 + S2)
Селектор смежных родственников используется для выбора указанного элемента, который находится непосредственно рядом с другим указанным элементом. Оба элемента должны быть на одном уровне.
div + p { color:red; }
Пример смежных одноуровневых селекторов
2) Общие селекторы братьев и сестер (S1 ~ S2)
Общий одноуровневый селектор используется для выбора всех указанных одноуровневых элементов другого указанного элемента.
div ~ p { color:red; }
Пример общих одноуровневых селекторов
Селекторы смежных братьев (S1 + S2) и общих братьев и сестер (S1 ~ S2):
Селектор смежных родственных элементов (S1 + S2) выбирает только непосредственный родственный элемент, но селектор общего родственного брата (S1 ~ S2) выбирает все родственные элементы другого указанного элемента. В обоих случаях оба элемента (S1 и S2) должны быть на одном уровне.
Остальные селекторы объяснены здесь: https://www.csssolid.com/35-css-selectors-to-remember.html
источник