Numérique et Sciences Informatiques > Internet et le Web > Langages du Web (HTML, CSS, JavaScript - Notions de Base) > CSS : mise en forme (sélecteurs, propriétés)
Comprendre l'Héritage et la Cascade en CSS
Ce guide explique les concepts d'héritage et de cascade en CSS, essentiels pour comprendre comment les styles sont appliqués et résolus dans les pages web.
Introduction à l'Héritage CSS
L'héritage en CSS est le mécanisme par lequel certaines propriétés CSS sont automatiquement transmises des éléments parents à leurs enfants. Imaginez que vous ayez une famille où les enfants héritent de certaines caractéristiques de leurs parents. En CSS, c'est un peu pareil : si vous définissez une propriété sur un élément parent, certains de ses enfants hériteront de cette propriété, sauf si vous la redéfinissez spécifiquement pour eux.
Propriétés Héritées vs. Propriétés Non-Héritées
Toutes les propriétés CSS ne sont pas héritées. Par exemple, les propriétés relatives au texte (comme font-family
, color
, font-size
) sont généralement héritées, tandis que les propriétés de boîte (comme margin
, padding
, border
) ne le sont pas.
Exemple :body {
font-family: Arial, sans-serif;
color: blue;
}
p {
font-size: 16px;
}
Dans cet exemple, tous les éléments du corps de la page (y compris les paragraphes) hériteront de la police Arial et de la couleur bleue définies pour le body
. Cependant, les paragraphes auront une taille de police de 16px, qui remplace la taille de police potentiellement héritée.
Contrôler l'Héritage
Vous pouvez contrôler l'héritage en utilisant le mot-clé inherit
. Cela force un élément à hériter de la valeur d'une propriété de son parent, même si cette propriété n'est normalement pas héritée. Vous pouvez également utiliser le mot-clé initial
pour remettre une propriété à sa valeur par défaut (définie par le navigateur), ou le mot-clé unset
pour la remettre à sa valeur héritée si elle est normalement héritée, ou à sa valeur initiale si elle ne l'est pas.
Exemple :div {
border: 1px solid black;
}
p {
border: inherit;
}
Dans cet exemple, les paragraphes à l'intérieur des <div>
hériteront de la bordure définie pour les <div>
.
Introduction à la Cascade CSS
La cascade est le mécanisme par lequel le navigateur décide quels styles appliquer à un élément lorsqu'il y a plusieurs règles CSS qui s'appliquent. Imaginez que vous ayez plusieurs personnes qui vous donnent des instructions sur la façon de vous habiller. La cascade est comme le processus qui détermine quelles instructions vous allez suivre en priorité.
Facteurs Déterminant la Cascade
Plusieurs facteurs influencent la cascade :#titre-principal
) est plus spécifique qu'un sélecteur de classe (.important
), qui est lui-même plus spécifique qu'un sélecteur de balise (p
).!important
ont la priorité sur toutes les autres règles, quel que soit leur origine, leur spécificité ou leur ordre d'apparition. Il est généralement déconseillé d'utiliser !important
, car cela peut rendre le style plus difficile à gérer.
Calcul de la Spécificité
La spécificité d'un sélecteur est calculée en fonction du nombre d'ID, de classes (et d'attributs), et de balises qu'il contient. Un sélecteur avec plus d'ID est plus spécifique qu'un sélecteur avec plus de classes, qui est lui-même plus spécifique qu'un sélecteur avec plus de balises. Les pseudo-classes et les pseudo-éléments sont comptés comme des classes. Les sélecteurs universels (*
), les combinateurs (>
, +
, ~
) et la pseudo-classe :not()
n'affectent pas la spécificité.
Ce qu'il faut retenir
inherit
, initial
et unset
.!important
ont la priorité sur toutes les autres règles.
FAQ
-
Qu'est-ce que l'héritage en CSS et quelles propriétés sont généralement héritées ?
L'héritage est le mécanisme par lequel certaines propriétés CSS sont transmises des éléments parents à leurs enfants. Les propriétés de texte, commefont-family
,color
, etfont-size
, sont généralement héritées. -
Comment puis-je empêcher un élément d'hériter d'une propriété CSS ?
Vous pouvez utiliser les mots-clésinitial
(pour remettre la propriété à sa valeur par défaut) ouunset
(pour la remettre à sa valeur héritée si elle l'est normalement, ou à sa valeur initiale sinon). -
Qu'est-ce que la cascade en CSS et quels sont les facteurs qui l'influencent ?
La cascade est le processus qui détermine quels styles appliquer à un élément lorsqu'il y a plusieurs règles CSS qui s'appliquent. Les facteurs qui l'influencent sont l'origine (utilisateur, navigateur, auteur), la spécificité des sélecteurs, l'ordre d'apparition des règles, et l'importance (!important
). -
Comment la spécificité des sélecteurs est-elle calculée ?
La spécificité est calculée en fonction du nombre d'ID, de classes (et d'attributs), et de balises dans le sélecteur. Un sélecteur avec plus d'ID est plus spécifique qu'un sélecteur avec plus de classes, qui est lui-même plus spécifique qu'un sélecteur avec plus de balises.