Types
Il existe quatre types de sélecteurs :
Élément
Identifiant
Classe
Attribut
On peut ajouter le sélecteur universel ( * ) qui représente n'importe quel type (à éviter gourmand en ressource).
Définition : Element
Pour mettre en forme les balises en fonction de leur Tag (p, div, span, header, footer, section...), Il suffit de remplacer le sélecteur dans la règle par le Tag concerné.
p {
color: green;
}
div {
background-color: coral;
}
<div> j'ai un fond coral</div>
<p>j'ai un texte vert</p>
<div>
<p>j'ai un fond coral et une écriture verte</p>
</div>
j'ai un texte vert
j'ai un fond coral et une écriture verte
Définition : Identifiant
Les balises HTML peuvent avoir un attribut id qui les identifie. L'identifiant est unique, c'est à dire que deux balises ne peuvent pas avoir le même id.
Pour mettre en forme les balises en fonction de leur id, il suffit de remplacer le sélecteur dans la règle par la valeur de l'identifiant précédé du symbole #.
#paragraphe {
color: green;
}
<p id="paragraphe">j'ai un texte vert</p>
<p>pas moi</p>
j'ai un texte vert
pas moi
Définition : Classe
Les balises HTML peuvent avoir un attribut class qui les identifies. Contrairement à l'identifiant, la valeur de la classe peut être identique pour plusieurs balises.
Pour mettre en forme les balises en fonction de leur classe, Il suffit de remplacer le sélecteur dans la règle par le nom de la classe précédé du symbole ".".
.maClasse {
color: green;
}
<p class="maClasse">j'ai un texte vert</p>
<p>Pas moi</p>
<div class="maClasse">Moi si</div>
j'ai un texte vert
Pas moi
Définition : Attribut
Historiquement, on pouvait distinguer les balises grâce à leur tag, id et class. Pour améliorer la précision de sélection des balises, le W3C a validé la recherche sur tous les attributs. Pour trouver les balises qui contiennent un attribut particulier, il suffit de remplacer le sélecteur dans la règle par l'attribut encadré des symboles [ ].
[lang] {
background-color: gray;
color: green;
}
<p lang="fr">fond en gris ecriture en bleu</p>
<p lang="en">background in gray writing in blue</p>
fond en gris ecriture en bleu
background in gray writing in blue
On peut préciser la valeur
[lang="fr"] {
background-color: gray;
color: green;
}
<p lang="fr">fond en gris ecriture en bleu</p>
<p lang="en"><del>background in gray writing in blue</del></p>
fond en gris ecriture en bleu
background in gray writing in blue
Il existe aussi :
[attr~="val"] : val est un des mots séparés par des espaces (class="toto val tata")
[attr^="val"] : commence par val (class = "valeur")
[attr|="val"] : correspond à val ou commence par val- (class="val" ou class="val-toto")
[attr$="val"] : termine par val (class = "carnaval")
[attr*="val"] : contient val (class = "avaler")
On peut combiner les attributs
[width="200"][height="200"]