---
title: Sélecteurs d'attribut
slug: Learn/CSS/Building_blocks/Selectors/Attribute_selectors
translation_of: Learn/CSS/Building_blocks/Selectors/Attribute_selectors
original_slug: Apprendre/CSS/Building_blocks/Selectors/Sélecteurs_d_atrribut
---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors", "Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements", "Learn/CSS/Building_blocks")}}
Dans l'étude de HTML, nous avons vu les attributs d'un élément. En CSS, on peut utiliser ces attributs pour cibler les éléments. Cette leçon vous montre comment.
## Sélecteur de présence et de valeur
Ces sélecteurs permettent de cibler un élément en fonction de la présence d'un attribut unique (par exemple `href`), ou sur des correspondances variées avec la valeur d'un attribut donné
| Sélecteur |
Exemple |
Description |
[attr] |
a[title] |
Cible les éléments avec un attribut du nom de attr — la valeur
entre les crochets droits.
|
[attr=value] |
a[href="https://example.com"] |
Cible les éléments dont l'attribut attr a la valeur
value — la chaîne entre guillemets.
|
[attr~=value] |
p[class~="special"] |
Cible les éléments avec un attribut attr dont la valeur est
exactement value, ou les éléments dont l'attribut
attr contient une ou plusieurs valeurs, dont au moins une
correspond à value.
Notez que dans une liste de plusieurs valeurs, le séparateur est
l'espace.
|
[attr|=value] |
div[lang|="zh"] |
Cible les éléments avec un attribut attr dont la valeur peut
être exactement value ou peut commencer par
value immédiatement suivie d'un trait d'union.
|
Dans l'exemple ci-dessous vous voyez ces sélecteurs en action :
- Avec `li[class]` on cible tout élément `` possédant un attribut `class`. On cible ainsi tous les éléments de la liste sauf le premier.
- `li[class="a"]` cible les `` appartenant à la classe `a` et seulement elle. Un élément `` dans la classe `a` mais aussi dans une autre classe ne sera pas sélectionné. Ce sélecteur cible le deuxième item de la liste.
- `li[class~="a"]` cible tout élément `` dont l'attribut `class` contient `a` dans sa liste de valeurs (séparées par des espaces). Les items deux et trois de la liste sont sélectionnés.
{{EmbedGHLiveSample("css-examples/learn/selectors/attribute.html", '100%', 800)}}
## Sélecteurs ciblant une sous-chaîne
Ces sélecteurs permettent une sélection plus fine des sous-chaînes à l'intérieur de la valeur de l'attribut. Par exemple, vous avez défini des classes `box-warning` et `box-error`, vous voulez cibler les classes dont le nom commence par "box-". Le sélecteur d'attribut `[class ^= "box-"]` est là pour ça.
| Sélecteur | Exemple | Description |
| ---------------- | ------------------- | -------------------------------------------------------------------------------------------------------------- |
| `[attr^=value]` | `li[class^="box-"]` | élément sélectionné quand la valeur _value_ de l'attribut _attr_ commence par la sous-chaîne _value._ |
| `[attr$=value]` | `li[class$="-box"]` | élément sélectionné quand la valeur de l'attribut _attr_ finit par la sous-chaîne _value._ |
| `[attr*=value ]` | `li[class*="box"]` | élément sélectionné quand la la sous-chaîne _value_ apparaît quelque part dans la valeur de l'attribut _attr._ |
L'exemple suivant montre ces sélecteurs en action :
- `li[class^="a"]` correspond à toute valeur d'attribut commençant par un _a,_ ce sélecteur cible donc les deux premiers items de la liste.
- `li[class$="a"]` correspond à toute valeur d'attribut finissant par un _a,_ ce sélecteur cible donc les items un et trois de la liste.
- `li[class*="a"]` correspond à toute valeur d'attribut contenant quelque part un _a,_ ce sélecteur cible donc tous les items de la liste.
{{EmbedGHLiveSample("css-examples/learn/selectors/attribute-substring.html", '100%', 800)}}
## Sensibilité à la casse
Pour cibler des valeurs d'attribut sans prendre en compte la casse (majuscule ou minuscule indifférentes), ajoutez la valeur `i` avant le crochet fermant. Ce drapeau signale au navigateur d'identifier les caractères ASCII sans se préoccuper de la casse (_a_ = _A_). Sans le drapeau `i`, les valeurs seront identifiées selon la sensibilité à la casse de la langue du document — HTML est sensible à la casse.
Dans l'exemple ci-dessous, le premier sélecteur cible les valeurs commençant par un `a` — seul le premier élément de la liste est ciblé, les deux suivants commencent par un A majuscule. Le second sélecteur est marqué du drapeau _insensible à la casse,_ il cible donc tous les éléments de la liste.
{{EmbedGHLiveSample("css-examples/learn/selectors/attribute-case.html", '100%', 800)}}
> **Note :** Dans des contextes normalement insensibles à la casse, on peut forcer la sensibilité avec la valeur `s` nouvellement introduite, mais sa prise en charge par les navigateurs est inégale ; elle n'est pas très utile dans un contexte HTML.
## Pas suivants
Nous en avons fini avec les sélecteurs d'attribut, vous pouvez maintenant continuer la visite et passer aux [sélecteurs de pseudo-classes et pseudo-éléments](/fr/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements).
{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors", "Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements", "Learn/CSS/Building_blocks")}}
## Dans ce cours
1. [Cascade et héritage](/fr/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance)
2. [Sélecteurs CSS](/fr/docs/Learn/CSS/Building_blocks/Selectors)
- [Sélecteurs de classe, de type et d'identifiant](/fr/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors)
- Sélecteurs d'attribut
- [Pseudo-classes et pseudo-éléments](/fr/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements)
- [Combinateurs](/fr/docs/Learn/CSS/Building_blocks/Selectors/Combinators)
3. [Le modèle de boîte](/fr/docs/Learn/CSS/Building_blocks/The_box_model)
4. [Arrières-plans et bordures](/fr/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders)
5. [Gérer la directionnalité du texte](/fr/docs/Learn/CSS/Building_blocks/Handling_different_text_directions)
6. [Le dépassement du contenu](/fr/docs/Learn/CSS/Building_blocks/Overflowing_content)
7. [Valeurs et unités](/fr/docs/Learn/CSS/Building_blocks/Values_and_units)
8. [Dimensionnement des objets en CSS](/fr/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS)
9. [Images, médias, et formulaires](/fr/docs/Learn/CSS/Building_blocks/Images_media_form_elements)
10. [Mettre en forme les tableaux](/fr/docs/Learn/CSS/Building_blocks/Styling_tables)
11. [Déboguer CSS](/fr/docs/Learn/CSS/Building_blocks/Debugging_CSS)
12. [Organiser son code CSS](/fr/docs/Learn/CSS/Building_blocks/Organizing)