Wenn sich ein <p>
Element unmittelbar nach einem<div>
Element befindet, bedeutet dies nicht, dass dem <p>
Element ein <div>
Element vorangestellt ist?
Das ist richtig. Mit anderen Worten, div + p
ist eine richtige Teilmenge von div ~ p
- alles, was mit dem ersteren übereinstimmt, ist es auch übereinstimmt, stimmt notwendigerweise mit dem letzteren überein.
Der Unterschied zwischen +
und ~
ist das~
alle folgenden Geschwister unabhängig von ihrer Nähe zum ersten Element übereinstimmen, sofern beide denselben Elternteil haben.
Diese beiden Punkte werden am prägnantesten anhand eines einzelnen Beispiels veranschaulicht, bei dem jede Regel eine andere Eigenschaft anwendet. Beachten Sie, dass auf die p
unmittelbar folgende div
Regel beide Regeln angewendet werden:
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>
Wie auch immer, ich suche einen Selektor, mit dem ich ein Element auswählen kann, das unmittelbar vor einem bestimmten Element steht.
Leider gibt es noch keinen .
+
ist das unmittelbar nächstep
Element und~
ist alle nächstenp
Elemente (nach jedemdiv
Element)