FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Sélecteurs CSS : comment cibler précisément les éléments de vos pages web

Les feuilles de style en cascade (CSS) révolutionnent l'apparence de vos pages web. Des polices et couleurs aux espacements et mises en page, de nombreux outils de design sont à votre disposition. Bien que le CSS soit un langage riche et complexe, deux concepts fondamentaux suffisent pour débuter : les sélecteurs et les déclarations.

Tout commence par l'identification précise de l'élément à styliser.

CSS = Sélecteurs + Déclarations

Un fichier CSS regroupe des règles indiquant comment formater un document HTML. Chaque règle se compose de deux parties : quoi styliser (via des sélecteurs) et comment le styliser (via des déclarations).

Sélecteurs CSS : comment cibler précisément les éléments de vos pages web

Les exemples de cet article mettent l'accent sur les sélecteurs, avec des déclarations pour plus de clarté. Historiquement divisés en niveaux (versions), les sélecteurs sont aujourd'hui supportés à plus de 99 % par les navigateurs mondiaux (source : Can I Use, 2020).

Sélecteurs de niveau 1

Les quatre types de base couvrent la majorité des cas d'usage.

ModèleMatchs
ETous les éléments E
.cTous les éléments avec class="c"
#myidL'élément avec id="myid"
E FUn élément F à l'intérieur d'un élément E (descendant)
Pseudo-classesE:link : Lien non visité
E:visited : Lien visité
E:active : Lien activé
Pseudo-élémentsE::first-line : Première ligne d'un élément E
E::first-letter : Première lettre d'un élément E

Sélecteur de type

Le plus simple : cible toutes les instances d'un élément.

p { margin-bottom: 0; }
b { font-family: sans-serif; }

Sélecteur de classe

Applique une sémantique supplémentaire via l'attribut class.

.intro { font-weight: bold; }

Correspond à :

<p class="intro">…</p>

Ou même :

<ul class="intro">…</ul>

Pour limiter aux paragraphes : p.intro.

Sélecteur d'ID

L'id est unique dans le document.

<div id="contents">…</div>
#contents { color: #333; }

Sélecteur descendant

Cible un élément par son contexte hiéarchique (DOM).

table b { font-weight: normal; }

Pseudo-classes et pseudo-éléments

Ils ciblent des états ou parties virtuelles.

p::first-line { text-transform: uppercase; }

Listes de sélecteurs

Séparez par des virgules pour appliquer les mêmes règles.

th, td { padding: 1em; }

Spécificité

En cas de conflit, la règle la plus spécifique l'emporte :
1. ID (#contents)
2. Classes (.author)
3. Types (p)

p.intro { color: black; }
p { color: gray; }

Exemple : #contents > article.news p.author.special.

Sélecteurs de niveau 2

ModèleMatchs
*Tout élément
E > FF enfant direct de E
E + FF immédiatement après E (frère adjacent)
Sélecteurs d'attributsE[foo] : Avec attribut foo
E[foo="bar"] : foo exactement "bar"
E[foo~="bar"] : foo liste contenant "bar"
E[foo|="en"] : foo commençant par "en-"
Pseudo-classesE:first-child : Premier enfant
E:lang(fr) : Langue "fr"
Pseudo-élémentsE::before / E::after : Contenu généré

Sélecteur universel

* { margin: 0; }

Sélecteurs d'attributs

a[title] { text-decoration: underline; }

Combinateur enfant (>)

Seulement les enfants directs.

Combinateur frère adjacent (+)

h1 + p { font-weight: bold; }

Héritage

Certaines propriétés (ex. : font-family) se propagent des ancêtres. Ciblez généreusement (ex. : body) pour l'efficacité.

Sélecteurs de niveau 3

ModèleMatchs
E ~ FF après E (frères généraux)
Sélecteurs d'attributsE[foo^="bar"] : Commence par "bar"
E[foo$="bar"] : Termine par "bar"
E[foo*="bar"] : Contient "bar"
Pseudo-classesE:nth-child(n), :root, :empty, :checked, :not(s), etc.

Combinateur frères généraux (~)

h1 ~ p { font-size: 110%; }

Utiliser les sélecteurs CSS

Vous maîtrisez désormais les sélecteurs pour styliser précisément vos pages. Explorez les propriétés CSS pour couleurs, mises en page et plus !

Crédit image : Pankaj Patel/Unsplash

[]