Maison > interface Web > tutoriel CSS > Les combinateurs frères et sœurs peuvent-ils cibler des pseudo-éléments comme : avant ou : après ?

Les combinateurs frères et sœurs peuvent-ils cibler des pseudo-éléments comme : avant ou : après ?

Patricia Arquette
Libérer: 2024-11-30 10:10:14
original
805 Les gens l'ont consulté

Can Sibling Combinators Target Pseudo-elements like :before or :after?

Combinateurs frères et sœurs et pseudo-éléments

Dans ce dilemme CSS, nous rencontrons la question de savoir s'il est possible de cibler un pseudo-élément, spécifiquement :before ou :after, en utilisant un combinateur frère.

Considérez ce qui suit CSS :

a[href^="http"]:after {
  content:"";
  width:10px;
  height:10px;
  display:inline-block;
  background-color:red;
}

a[href^="http"] img ~ :after {
  display:none;
}
Copier après la connexion

Et le HTML suivant :

<a href="http://google.com">Test</a>
<a href="http://google.com">
  <img src="https://www.google.com/logos/classicplus.png">
</a>
Copier après la connexion

L'intention est d'appliquer un pseudo-élément à toutes les balises d'ancrage correspondantes, à l'exception de celles qui contiennent une image. Cependant, le CSS ne fonctionne pas comme prévu.

La réponse réside dans la nature des pseudo-éléments. Selon la spécification CSS, le contenu généré à partir de pseudo-éléments n'affecte pas la structure DOM. Cela signifie que les combinateurs frères, qui s'appuient sur des éléments présents dans l'arborescence DOM, ne peuvent pas cibler les pseudo-éléments.

En d'autres termes, le CSS tente de masquer le pseudo-élément :after sur les balises d'ancrage qui partagent un parent avec une image. Cependant, comme le pseudo-élément :after n'est pas rendu dans le DOM, il est impossible pour le combinateur frère de le localiser.

Par conséquent, JavaScript est souvent une solution plus adaptée pour cibler des éléments en fonction de leur relations avec d'autres éléments du DOM.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal