COURS COMPLET : LES SÉLECTEURS CSS (de A à Z)
Voici le cours le plus complet et le plus clair possible sur tous les types de sélecteurs CSS, avec explications + exemples simples et avancés, pour que tout devienne comme l’eau de roche.
Voici le cours le plus complet et le plus clair possible sur tous les types de sélecteurs CSS, avec explications + exemples simples et avancés, pour que tout devienne comme l’eau de roche.
Les sélecteurs CSS permettent de cibler des éléments HTML pour leur appliquer un style.
Il existe plusieurs catégories :
Sélecteurs simples
Sélecteurs combinés / relationnels
Sélecteurs d’attributs
Pseudo-classes
Pseudo-éléments
Sélecteurs avancés (CSS3+)
Cible tous les éléments d’un type donné.
p {
color: blue;
}
→ cible tous les <p>.
Utilise le point .
.box {
background: red;
}
HTML :
<div class="box"></div>
Utilise #
⚠ Un seul élément doit avoir cet ID !
#header {
height: 80px;
}
*Cible tout dans la page.
* {
margin: 0;
padding: 0;
}
Permet de fusionner plusieurs sélecteurs.
h1, h2, h3 {
font-family: Arial;
}
A BCible B à l’intérieur de A (n’importe quel niveau).
div p {
color: green;
}
A > BCible seulement les enfants immédiats.
ul > li {
color: red;
}
A + BCible l’élément B juste après A.
h1 + p {
font-size: 20px;
}
A ~ BCible tous les B après A, même s’ils ne sont pas adjacents.
h2 ~ p {
color: orange;
}
Ils servent à cibler des éléments selon leurs attributs HTML.
[attr="valeur"]input[type="password"] {
background: #eee;
}
[attr*="valeur"]Cible si la valeur contient du texte.
a[href*="facebook"] {
color: blue;
}
[attr^="valeur"]a[href^="https"] {
font-weight: bold;
}
[attr$="valeur"]img[src$=".png"] {
border: 2px solid green;
}
[attr~="mot"]div[class~="active"] {
border: 1px solid blue;
}
→ utile pour les classes multiples.
[attr|="mot"]p[lang|="en"] {
color: purple;
}
Cible : lang="en" ou lang="en-US".
Elles ciblent un état dynamique de l’élément.
:hoverQuand la souris passe dessus.
button:hover {
background: black;
}
:activeQuand on clique.
a:active {
color: red;
}
:focusQuand un input a le focus.
input:focus {
border-color: blue;
}
:visitedLien déjà visité.
:first-childLe premier enfant.
p:first-child {
color: green;
}
:last-childLe dernier enfant.
:nth-child(n)Très puissant : choisir un élément par son numéro.
Exemples :
li:nth-child(3) {
color: red;
}
li:nth-child(even) { color: blue; }
li:nth-child(odd) { color: orange; }
li:nth-child(3n) {
font-weight: bold;
}
:nth-of-type(n)Comme nth-child mais en ignorant les autres types.
p:nth-of-type(2) {
color: purple;
}
:not(selector)Inverse la sélection !
button:not(.danger) {
background: green;
}
:checkedCheckbox ou radio cochée.
input:checked + label {
font-weight: bold;
}
:disabled:required:valid:invalidExemple :
input:invalid {
border: 2px solid red;
}
Ils ciblent une partie d’un élément (pas un élément entier).
::beforeAjoute du contenu avant l’élément.
p::before {
content: "→ ";
color: red;
}
::afterAjoute du contenu après.
p::after {
content: "...";
}
::first-letterPremière lettre.
p::first-letter {
font-size: 40px;
color: gold;
}
::first-linePremière ligne de texte.
::selectionStyle du texte sélectionné.
::selection {
background: yellow;
color: black;
}
Comme un selecteur parent.
div:has(img) {
border: 2px solid red;
}
→ cible les div qui contiennent une image.
:is() → simplifie les sélecteurs complexes:is(h1, h2, h3) {
color: blue;
}
:where() → comme is() mais sans coût de spécificité:where(header nav a) {
text-decoration: none;
}
:rootCible l’élément <html> → souvent utilisé pour définir des variables CSS.
:root {
--main-color: #6c63ff;
}
Type, classe, id, *, groupés
A B, A > B, A + B, A ~ B
[attr], =, *=, ^=, $=, ~=, |=
:hover, :focus, :nth-child(), :not(), :checked, ...
::before, ::after, ::first-letter, ...
:has(), :is(), :where(), :root
Commentaires (0)
Vous devez être connecté pour commenter
Se connecterChargement des commentaires...