Les unités en CSS
Les navigateurs modernes prennent en charge un grand nombre d'unités pour dimensionner les éléments d'une page web. Dans une page web, on peut avoir besoin de modifier la taille :
- du texte
- des images
- des différents éléments (menus, en-têtes, etc...)
Toutes les unités ne sont pas systématiquement nécessaires, nous verrons dans cette page celles qui sont les plus utiles dans un premier temps :
- les pixels (unité :
px
) - l'unité
em
et surtoutrem
- les pourcentages (unité :
%
)
cm
, les mm
, pt
, pc
ne sont quasi jamais utilisées, car elles ne correspondent pas à la réalité d'une page web et donc d'un affichage sur écran.Unité | Relatif ou Absolu | Description |
---|---|---|
px | Absolu | Représente un pixel de l'affichage, généralement utilisé pour des mesures fixes. |
em | Relatif | Relatif à la taille de la police de l'élément parent. |
rem | Relatif | Relatif à la taille de la police de l'élément racine (généralement ). |
% | Relatif | Relatif à la taille du conteneur parent (peut s'appliquer aux marges, largeurs, hauteurs, etc.). |
vw | Relatif | Représente 1 % de la largeur de la fenêtre d'affichage. |
vh | Relatif | Représente 1 % de la hauteur de la fenêtre d'affichage. |
vmin | Relatif | Représente 1 % de la plus petite dimension de la fenêtre (largeur ou hauteur). |
vmax | Relatif | Représente 1 % de la plus grande dimension de la fenêtre (largeur ou hauteur). |
cm | Absolu | Centimètre, utilisé principalement pour des supports physiques. |
mm | Absolu | Millimètre, utilisé principalement pour des supports physiques. |
in | Absolu | Pouce (1 pouce = 2,54 cm), utilisé principalement pour des supports physiques. |
pt | Absolu | Point typographique (1 point = 1/72 de pouce). |
pc | Absolu | Pica typographique (1 pica = 12 points). |
ex | Relatif | Relatif à la hauteur de la lettre "x" de la police utilisée. |
ch | Relatif | Relatif à la largeur du caractère "0" de la police utilisée. |
fr | Relatif | Fraction de l'espace disponible dans une grille CSS (utilisé avec grid-template-columns/rows). |
Accessibilité
Dans les navigateurs, on peut définir la taille de base de la police d'écriture. Cette taille sera alors définie dans l'élément racine de la page web, c'est-à-dire la balise html
.
Ainsi, un utilisateur malvoyant qui aurait besoin d'afficher le texte dans une grande taille pourra paramétrer son navigateur.
px
, qui est une unité absolue. Un texte dont on modifie le style pour qu'il soit affiché en 16px
sera donc de la même taille sur un navigateur configuré par défaut et sur un navigateur configuré pour une personne malvoyante.
On préfèrera alors l'unité
rem
.Trois unités pratiques
px
) Les pixels (
Les pixels représentent une unité fixe correspondant à un point sur l'écran. C'est l'une des unités les plus simples à comprendre. Elle est particulièrement utile pour définir des dimensions précises, comme la taille du texte, des bordures ou des marges.
Exemple :
h1 {
font-size: 24px; /* Taille fixe du texte */
margin: 10px; /* Marges fixes autour de l'élément */
}
%
) Les pourcentages (
L'unité en pourcentage est relative à un conteneur parent. Elle est idéale pour créer des éléments proportionnels, en particulier dans des mises en page fluides ou responsives.
Exemple :
div {
width: 50%; /* La largeur de l'élément sera la moitié de celle de son conteneur parent */
}
Les pourcentages sont aussi utilisés pour des propriétés comme la hauteur, les marges ou les paddings.
rem
(et em
) Les unités relatives :
Les unités relatives permettent une meilleure adaptabilité, car elles dépendent de la taille de la police définie dans le contexte :
em
et rem
rem
(root em) : relative à la taille de la police définie sur l'élément racine (html
).em
: relative à la taille de la police de l'élément parent immédiat.
Avantage de rem
sur em
:rem
est plus prévisible, car elle ne dépend que de la taille définie à la racine, tandis que em
peut varier selon l'héritage et les éléments imbriqués.
Exemple :
html {
font-size: 16px; /* Taille de base */
}
h1 {
font-size: 2rem; /* 2 fois la taille de base (32px) */
}
p {
font-size: 1rem; /* Égale à la taille de base (16px) */
}
Avec ces unités, il est plus simple d'adapter les éléments à différents écrans et tailles de texte, tout en respectant les principes d'accessibilité.