Les sélecteurs d'attribut dans CSS sont utilisés pour cibler des éléments en fonction de leurs attributs et valeurs d'attribut. Cela fournit un moyen puissant de styliser des éléments qui ont des attributs spécifiques, sans avoir besoin d'ajouter des classes ou des ID supplémentaires. Pour utiliser des sélecteurs d'attribut, vous pouvez les écrire directement dans vos sélecteurs CSS, et ils suivent une syntaxe générale: [attribute]
, [attribute="value"]
, ou d'autres variantes en fonction du type de sélecteur d'attribut que vous utilisez.
Voici un exemple simple d'utilisation d'un sélecteur d'attribut pour cibler tous les <a></a>
éléments avec un attribut href
:
<code class="css">a[href] { color: blue; }</code>
Cette règle appliquera la couleur bleue à toutes les balises d'ancrage qui ont un attribut href
. Vous pouvez également cibler des valeurs spécifiques des attributs. Par exemple, pour styliser des liens qui pointent vers des sites Web externes (à commencer par "http"), vous pouvez utiliser:
<code class="css">a[href^="http"] { background-color: yellow; }</code>
Dans ce cas, ^=
est utilisé pour correspondre au début de la valeur d'attribut. Différents opérateurs peuvent être utilisés pour faire correspondre différentes parties de la valeur d'attribut, qui seront discutées dans la section suivante.
CSS fournit plusieurs types de sélecteurs d'attribut, chacun conçu pour correspondre aux différentes conditions d'un attribut:
Sécoupeurs de présence et de valeur:
[attribute]
: sélectionne des éléments qui ont l'attribut spécifié, avec n'importe quelle valeur.[attribute="value"]
: sélectionne des éléments avec l'attribut et la valeur spécifiés exactement comme indiqué.[attribute~="value"]
: sélectionne des éléments avec une valeur d'attribut qui est une liste de mots séparée dans l'espace, dont l'un est exactement la valeur spécifiée.[attribute|="value"]
: sélectionne des éléments avec une valeur d'attribut qui est une liste de mots séparée en trait d'union, en commençant par la valeur spécifiée.Sélecteurs de correspondance de substrat:
[attribute^="value"]
: sélectionne des éléments dont la valeur d'attribut commence par la valeur spécifiée.[attribute$="value"]
: sélectionne des éléments dont la valeur d'attribut se termine par la valeur spécifiée.[attribute*="value"]
: sélectionne des éléments dont la valeur d'attribut contient la valeur spécifiée n'importe où.Sensibilité à la caisse:
i
pour les rendre insensibles à un cas, par exemple: [attribute="value" i]
.Chacun de ces types de sélecteurs propose différentes façons de localiser des éléments en fonction de leurs attributs, ce qui facilite les styliser sans balisage HTML supplémentaire.
Les sélecteurs d'attribut peuvent améliorer la spécificité des règles CSS en permettant un ciblage plus précis des éléments en fonction de leurs attributs. La spécificité de CSS détermine quels styles sont appliqués lorsque plusieurs règles conflictuelles ciblent le même élément. Plus un sélecteur est spécifique, plus sa priorité est élevée.
Voici comment les sélecteurs d'attribut contribuent à la spécificité:
a[hreflang="en"]
est plus spécifique qu'un simple a
, et il remplacera les règles qui ciblent uniquement a
.div[data-role="main"]
cible un div
avec un attribut de données spécifique, ce qui les rend plus spécifiques que div
.En utilisant des sélecteurs d'attribut, vous pouvez créer des styles hautement ciblés et spécifiques, réduisant la probabilité de conflits de style involontaire et améliorant la maintenabilité de votre CSS.
Oui, les sélecteurs d'attribut peuvent être combinés de manière transparente avec d'autres sélecteurs CSS pour créer des règles plus complexes et ciblées. Cette combinaison permet un contrôle à grains fins sur les éléments coiffés et comment.
Voici quelques exemples de la façon dont les sélecteurs d'attribut peuvent être combinés avec d'autres sélecteurs:
Combinaison avec des sélecteurs de type:
<code class="css">input[type="text"] { border: 1px solid #ccc; }</code>
Cette règle cible les éléments input
spécifiquement de type "texte", définissant un style de bordure.
Combinaison avec des sélecteurs de classe:
<code class="css">.button[aria-disabled="true"] { opacity: 0.5; pointer-events: none; }</code>
Cette règle s'applique aux éléments avec le button
de classe qui ont un jeu d'attribut aria-disabled
sur "True", stylisant efficacement les boutons désactivés.
Combinaison avec des sélecteurs d'ID:
<code class="css">#main-nav li[data-active="true"] { background-color: #eee; }</code>
Cela cible les éléments répertoriés dans un élément avec l'ID main-nav
qui a un jeu d'attribut data-active
sur "VRAI", mettant en évidence l'élément de navigation actif.
Utilisation de plusieurs sélecteurs d'attribut:
<code class="css">a[href^="https"][target="_blank"] { background-image: url('external-link-icon.png'); }</code>
Cette règle ajoute une icône de liaison externe aux balises d'ancrage qui commencent les deux par "https" et ont un attribut target
défini sur "_blank".
La combinaison de sélecteurs d'attribut avec d'autres types de sélecteurs vous permet de créer des règles très précises qui peuvent cibler les éléments avec une spécificité élevée, ce qui rend votre CSS plus efficace et plus facile à gérer.
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!