Si un <p>
élément est immédiatement après un <div>
élément, cela ne signifie-t-il pas que l' <p>
élément est précédé d'un <div>
élément?
C'est correct. En d'autres termes, div + p
est un sous - ensemble approprié de div ~ p
- tout ce qui correspond au premier est également associé au second, par nécessité.
La différence entre +
et ~
est que ~
correspond à tous les frères et sœurs suivants, quelle que soit leur proximité avec le premier élément, à condition qu'ils partagent tous les deux le même parent.
Ces deux points sont illustrés de manière plus succincte par un seul exemple, où chaque règle applique une propriété différente. Remarquez que celuip
qui suit immédiatement le div
a les deux règles appliquées:
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>
Quoi qu'il en soit, je recherche un sélecteur où je peux sélectionner un élément qui est placé immédiatement avant un élément donné.
Malheureusement, il n'y en a pas encore .
+
est l'p
élément suivant immédiat et~
représente tous lesp
éléments suivants (après chaquediv
élément)