Tutoriel CSS : introduction aux Cascading Style Sheets
CSS sert à définir l’apparence et la mise en page des sites Web. Avec les Cascading Style Sheets, vous séparez le design du contenu et obtenez ainsi une structure claire et flexible. Dans ce tutoriel CSS, vous découvrez comment piloter précisément la mise en page, les couleurs et la typographie de votre site Web avec CSS.
Séparer le contenu et la présentation
En combinaison avec HTML, CSS sert à séparer le contenu de la présentation.
Le Hypertext Markup Language (HTML) est utilisé pour enrichir des documents texte avec des informations servant à structurer sémantiquement les éléments de texte. Ce langage de balisage constitue ainsi la base de tout site Web : le code HTML. Il décrit de quels éléments HTML se compose un document (p. ex. <body>, <header>, <footer>) et comment les informations doivent être interprétées (p. ex. titre <h1> ou paragraphe <p>).
À l’origine, HTML proposait aussi des instructions de mise en forme rudimentaires. Mais avec HTML5, elles sont considérées comme obsolètes et ne doivent plus être utilisées aujourd’hui. À la place, on utilise le langage de feuilles de style CSS (Cascading Style Sheets) pour gérer séparément les règles de présentation.
- Éditeur de site intuitif avec fonctions d'IA
- Générateur d'images et de textes avec optimisation SEO
- Domaine, SSL et boîte email inclus
Qu’est-ce que le CSS ?
Comme HTML, le CSS est également rédigé sous forme de texte. Cela peut se faire directement dans le document HTML (en ligne pour chaque document ou une seule fois dans l’en-tête HTML). En règle générale, les Webdesigners intègrent toutefois des fichiers CSS séparés pour mettre en forme les pages Web. Le résultat est un code source plus lisible, dans lequel les instructions de mise en forme redondantes sont évitées grâce à des références à des feuilles de style distinctes : moins il y a de répétitions, plus le code source est léger.
Si des ajustements de design sont nécessaires, ils sont effectués dans les fichiers CSS centraux. Il n’est donc pas nécessaire de parcourir chaque document HTML et de l’ajuster séparément. CSS s’est vite imposé comme standard et a continuellement été développé par le World Wide Web Consortium (W3C).
Comprendre la structure de base : la syntaxe CSS
La mission principale du CSS est de définir l’apparence d’un site Web. Pour cela, des propriétés associées à des valeurs spécifiques sont appliquées aux éléments HTML à l’aide de ce langage de feuilles de style. La structure de base d’une règle de mise en forme repose sur le schéma suivant :
selecteur { declaration }css« selecteur » est une représentation de l’élément HTML auquel la règle de mise en forme se rapporte. La déclaration se compose d’une combinaison propriété-valeur, notée ensuite entre accolades. Chaque déclaration se termine par un point-virgule :
selecteur { propriete: valeur; }cssSelon ce schéma, vous pouvez par exemple attribuer à un titre une couleur de police, comme le rouge :
h2 { color: red; }cssLes Webdesigners peuvent attribuer une propriété unique au sélecteur ou définir des ensembles de règles plus complets, qui incluent des instructions de mise en forme détaillées. Pour plus de lisibilité, une notation s’est imposée : toutes les propriétés d’un ensemble de règles sont écrites les unes sous les autres :
selecteur {
propriete1 : valeur;
propriete2 : valeur;
propriete3 : valeur;
}cssEn pratique, un tel ensemble de propriétés pourrait ressembler à ceci :
h2 {
color: #ff0000;
font-family: Helvetica, sans-serif;
font-size: 19px;
font-weight: bold;
text-align: center;
}cssUn ensemble de règles peut également spécifier plusieurs sélecteurs. Dans le cas suivant, ils sont indiqués avant la déclaration et séparés par des virgules :
selecteur1, selecteur2 { declaration }cssUtiliser les sélecteurs CSS
CSS prend en charge divers sélecteurs, qui permettent une attribution personnalisée des instructions de mise en forme. Pour débuter, il suffit de se familiariser avec les sélecteurs de type, de classe, d’ID et universels. La sensibilité à la casse dépend du document : en HTML, les noms d’éléments ne sont généralement pas sensibles à la casse, tandis qu’en XML ils le sont. Pour class/id, nous vous recommandons d’utiliser une casse cohérente partout (HTML et CSS).
| Type de sélecteur | Syntaxe CSS | Description | Spécificité |
|---|---|---|---|
| Sélecteur de type | Élément HTML (par ex. h2)
|
Un sélecteur de type correspond au nom de l’élément ciblé. Les règles de mise en forme s’appliquent à tous les éléments HTML du même type. | 1 |
| Sélecteur de classe | .exemple
|
Un sélecteur de classe cible tous les éléments appartenant à une classe donnée. Les sélecteurs de classe sont précédés d’un point (.) et d’un nom libre, par exemple .exemple. Les classes sont attribuées aux éléments HTML via l’attribut class (class="exemple").
|
10 |
| ID | #exemple
|
Un sélecteur d’ID cible un élément unique identifié par un identifiant spécifique. L’intégration dans le code HTML se fait à l’aide de l’attribut id (id="exemple").
|
100 |
| Sélecteur universel | *
|
Le sélecteur universel, représenté par l’astérisque (*), cible l’ensemble des éléments HTML d’un document.
|
0 |
Lorsque plusieurs règles s’appliquent au même élément, la spécificité d’un sélecteur détermine quelle règle est appliquée. Chaque type de sélecteur possède une valeur spécifique, qui contribue au calcul de la spécificité.
Sélecteur de type
L’utilisation de différents sélecteurs CSS peut s’illustrer à l’aide d’exemples. Le code suivant montre le sélecteur de type h2 avec sa déclaration :
h2 {
color: #305796;
font-family: Helvetica, sans-serif;
}cssLa mise en forme s’applique à tous les éléments HTML de type h2.
Sélecteur de classe
Vous pouvez aussi appliquer la mise en forme CSS à l’aide d’un sélecteur de classe. Cela permet aux designers d’attribuer les mêmes règles de style à des éléments HTML, quel que soit leur type.
.content {
color: #ff0000;
font-family: Helvetica, sans-serif;
}cssLa mise en forme s’applique à tous les éléments HTML auxquels la classe .content a été attribuée. Cette attribution se fait dans le code HTML selon le schéma suivant :
<p class="content">Exemple de texte</p>htmlEn HTML, les noms de classe s’écrivent sans point.
Sélecteur d’ID
Si une règle de style ne doit s’appliquer qu’à un seul élément dans le code source HTML, un sélecteur d’ID est recommandé. L’exemple suivant montre la mise en forme d’une zone de navigation :
#navigation {
font-family: Helvetica, sans-serif;
background-color: #8ad8d4;
border: 2px solid #448278;
}cssL’attribution de la mise en forme se fait dans le code source HTML sans hashtag :
<div id="navigation">
<ul>
<li><a href="index.htm">Page d’accueil</a></li>
<li><a href="mentionslegales.htm">Mentions légales</a></li>
</ul>
</div>htmlL’avantage des sélecteurs d’ID est qu’ils permettent de voir d’un coup d’œil quelles sections du code source correspondent à des zones uniques.
Sélecteur universel
Si une règle de style doit s’appliquer à tous les éléments d’un document HTML, on utilise l’astérisque (*) :
* {
font-family: Helvetica, sans-serif;
}cssTous les éléments du document utilisent la police Helvetica.
Intégrer le CSS dans HTML
Pour qu’un navigateur puisse prendre en compte les mises en forme CSS, les règles de style doivent être associées au code source HTML. Trois possibilités s’offrent à vous :
- L’intégration directe des déclarations CSS dans les balises HTML
- Le balisage CSS dans l’en-tête HTML
- La référence à une feuille de style distincte
Cette dernière solution est considérée comme la meilleure approche : en pratique, les feuilles de style sont le plus souvent créées sous forme de fichiers texte externes, puis intégrées.
Déclaration CSS dans les balises HTML
Si une déclaration CSS doit mettre en forme un seul endroit dans le code source, elle peut être indiquée directement dans la balise ouvrante de l’élément HTML concerné, à l’aide de l’attribut style. On parle dans ce cas de « Inline-Style ».
<h2 style="color: red;">Sous-titre</h2>htmlCela présente l’avantage de ne pas avoir à créer de feuille de style dédiée et d’éviter l’utilisation d’un sélecteur. En revanche, ce type d’attribution possède une priorité élevée dans la cascade CSS, car les styles inline ont une spécificité supérieure à celle des sélecteurs classiques définis dans une feuille de style. La déclaration !important peut toutefois modifier cet ordre de priorité et permettre à une règle externe de s’appliquer malgré un style inline. Dès qu’un ensemble complet de règles est utilisé, ce mode de mise en forme devient rapidement peu lisible, difficile à maintenir et redondant.
Marquage CSS dans l’en-tête HTML
Si une seule et même règle de mise en forme doit être utilisée plusieurs fois dans un document HTML pour le même élément (par exemple pour tous les h2 de la page Web), la déclaration CSS dans la balise HTML est inefficace. Il est alors préférable de définir une seule fois les indications de mise en forme correspondantes dans l’en-tête HTML du document à l’aide de l’élément style :
<!DOCTYPE html>
<html lang="fr">
<head>
<style>
h2 {
color: #ff0000;
font-family: ‘Helvetica Neue’, sans-serif;
font-size: 19px;
font-weight: bold;
text-align: center;
}
</style>
</head>
<body>
<h2>Sous-titre 1</h2>
[…]
<h2>Sous-titre 2</h2>
[…]
</body>
</html>htmlL’ensemble de règles au sein de l’élément style est automatiquement appliqué à tous les éléments h2 suivants. Si l’élément h2 doit également être utilisé sur d’autres pages Web du même projet en ligne avec les règles de mise en forme définies ici, vous pouvez simplement définir ces règles via un fichier CSS centralisé.
Référence à une feuille de style séparée
Lorsque des règles de mise en forme sont définies dans une feuille de style séparée, il faut l’intégrer au document HTML concerné. Cela se fait à l’aide de l’élément HTML <link> :
<link rel="stylesheet" href="print.css" media="print">htmlL’élément link contient les attributs obligatoires rel et href et peut, de manière optionnelle, être complété par les attributs type et media.
Attributs de l’élément link |
Description |
|---|---|
rel
|
L’attribut rel définit le type de relation de l’élément. La valeur stylesheet indique qu’une feuille de style doit être liée.
|
href
|
L’attribut href référence le fichier à lier en tant que feuille de style.
|
type
|
L’attribut facultatif type décrit le type MIME du fichier à lier, dans le cas du CSS text/css.
|
media
|
L’attribut media permet de définir que la feuille de style référencée n’est utilisée que pour un support de sortie spécifique. Cela permet de proposer différentes feuilles de style selon les appareils. Les valeurs possibles incluent par exemple screen ou print.
|
Indiquer les couleurs en CSS
Comme évoqué dans le chapitre d’introduction, les attributions de couleurs via CSS peuvent être définies à l’aide des noms de couleurs en anglais. En pratique, on rencontre toutefois assez rarement ce type d’instructions de mise en forme. Le modèle RGB est plus souvent utilisé. Il offre nettement plus de nuances et permet ainsi aux propriétaires de sites Web d’effectuer des réglages de couleur précis. Les codes correspondants peuvent être obtenus via un sélecteur de couleurs, que Google propose par exemple sous la forme d’une réponse rapide.

Les composantes de couleur sont définies dans le modèle RGB par des valeurs décimales comprises entre 0 et 255 : 0 signifie qu’aucune composante n’est présente, 255 correspond à une intensité maximale.
Depuis CSS3, vous pouvez ajouter une quatrième valeur, le canal alpha (a), qui règle la transparence : 0 rend la couleur totalement transparente, 1 la rend totalement opaque (par exemple 0.8 pour une opacité de 80 %). La syntaxe est la suivante :
rgba(<r>, <g>, <b>, <alpha>)cssAinsi, les valeurs RGBA suivantes donnent, par exemple, la couleur de base bleu avec une transparence de 50 % :
color:rgba(0, 0, 255, 0.5);cssVous pouvez également indiquer les valeurs RGB en hexadécimal.
Connaître les principales propriétés CSS
Avec CSS, vous disposez de nombreuses propriétés qui permettent de définir des règles de mise en forme pour les éléments HTML. Chaque propriété accepte un ensemble de valeurs défini dans la spécification. Pour plus de clarté, les propriétés CSS sont regroupées par domaines d’utilisation. Nous nous concentrons sur les propriétés les plus importantes.
Typographie
Parmi les caractéristiques essentielles d’un site Web, on trouve la typographie. CSS vous offre diverses possibilités pour mettre en forme les éléments de texte d’une page HTML.
font-family
Si vous souhaitez définir une police (font) spécifique pour les éléments de texte d’un site Web, utilisez la propriété CSS font-family. Elle vous permet de créer ce que l’on appelle une pile de polices (font stack). Il s’agit d’une liste priorisée de polices adaptées. Les piles de polices sont conçues de sorte que la police souhaitée soit indiquée en premier, suivie d’une liste d’alternatives d’affichage appropriées :
.content {
font-family: Georgia, Garamond, serif;
}cssL’exemple montre une règle de mise en forme dans le fichier CSS. La police prioritaire est Georgia, et la police alternative Garamond. Un navigateur Web est ainsi invité à afficher le passage de texte en Garamond si la police Georgia n’est pas installée sur le système.
En tant que mécanisme de repli, il s’agit d’un nom générique utilisé comme valeur de remplacement. Ce placeholder regroupe plusieurs polices aux caractéristiques similaires et permet au navigateur d’en choisir une disponible si la police principale ne peut pas être chargée.
font-style
La propriété CSS font-style concerne le style de police d’un paragraphe et vous permet de définir des règles de mise en forme pour l’inclinaison des caractères ainsi mis en évidence.
| Valeurs d’inclinaison du texte | Description |
|---|---|
normal
|
Style de police normal, valeur par défaut |
italic
|
Affiche le texte en italique lorsque la police dispose d’une variante correspondante |
oblique
|
Incline artificiellement la police, même si aucune variante italique n’est disponible |
L’exemple suivant montre une règle de mise en forme pour le style de police italique :
.special-content {
font-family: Arial;
font-style: italic;
}cssfont-variant
La propriété CSS font-variant est utilisée pour définir des variantes de police.
| Valeurs pour les variantes de police | Description |
|---|---|
normal
|
Variante de police normale, valeur par défaut |
small-caps
|
Affiche les lettres minuscules sous forme de petites capitales, à la hauteur des minuscules |
all-small-caps
|
Affiche les majuscules et les minuscules sous forme de petites capitales |
L’exemple suivant définit la variante de police small-caps :
.content {
font-family: Arial;
font-variant: small-caps;
}cssfont-size
Avec la propriété CSS font-size, vous définissez la taille d’affichage des éléments de texte. Celle-ci peut être exprimée à l’aide de valeurs absolues ou relatives. La valeur définie correspond au corps de la police, c’est-à-dire à la taille de référence à partir de laquelle le navigateur calcule la hauteur visible des caractères et les espacements associés.
Unités de mesure absolues
Les unités de mesure absolues reposent sur des longueurs physiques. À l’écran, les navigateurs les convertissent toutefois en pixels CSS, en se basant sur une résolution de référence de 96 dpi. En pratique, seule l’unité px est couramment utilisée en Webdesign. Les autres unités absolues sont surtout pertinentes pour les mises en page destinées à l’impression.
| Unité | Notation CSS | Description |
|---|---|---|
| Pixel | px
|
L’unité px définit la taille d’un élément en pixels CSS. Son affichage dépend de la densité de pixels de l’écran. Par convention, 1 pixel CSS équivaut à 1/96 de pouce. Cette correspondance peut être ajustée par l’utilisateur en modifiant le niveau de zoom du navigateur.
|
| Centimètre | cm
|
Définit une taille exprimée en centimètres |
| Millimètre | mm
|
Définit une taille exprimée en millimètres |
| Pouce | in
|
Définit une taille en pouces, avec 1 in équivalant à 2,54 cm |
| Point | pt
|
Définit une taille en points, où 1 pt correspond à 1/72 de pouce |
| Pica | pc
|
Définit une taille en picas, avec 1 pica équivalant à 12 points |
De plus, la taille de police peut être définie à l’aide de mots-clés absolus :
| Mot-clé | Description | Exemple |
|---|---|---|
xx-small
|
Très petit | 9 px |
x-small
|
Très petit | 10 px |
small
|
Petit | 13 px |
medium
|
Moyen, taille de police par défaut du navigateur | 16 px |
large
|
Grand | 19 px |
x-large
|
Très grand | 24 px |
xx-large
|
Très grand | 32 px |
Unités de mesure relatives
Les unités de mesure relatives correspondent à des valeurs de taille de police calculées en fonction d’une taille déjà définie. Les éléments HTML héritent de leur taille de police de l’élément parent concerné. La référence d’une taille de police relative peut également être un repère technique comme la taille d’écran d’un appareil ou une valeur par défaut du navigateur Web.
| Unité | Syntaxe CSS | Description |
|---|---|---|
| Valeur en pourcentage | %
|
L’unité % indique la taille de police en pourcentage par rapport à la taille de police héritée.
|
| em (hauteur de police) | em
|
L’unité em est relative à l’élément parent. Ainsi, 1em correspond à 100 % de la taille de police héritée. Si aucune taille n’est définie pour l’élément parent, la taille de police par défaut de l’appareil est utilisée.
|
| Hauteur d’x | ex
|
L’unité ex se base sur la hauteur de la lettre minuscule x de la police utilisée. Si cette valeur n’est pas définie, 1ex équivaut à 0.5em.
|
| Root-em | rem
|
L’unité rem se rapporte à l’élément racine du document, par exemple l’élément HTML. 1rem correspond à 100 % de la taille de police définie pour cet élément racine.
|
| Largeur du viewport | vw
|
L’unité vw se base sur la largeur de la zone d’affichage de l’appareil. 1vw correspond à 1 % de la largeur du viewport.
|
| Hauteur du viewport | vh
|
L’unité vh se base sur la hauteur de la zone d’affichage de l’appareil. 1vh correspond à 1 % de la hauteur du viewport.
|
La taille de police peut aussi être définie à l’aide de mots-clés relatifs. Le point de référence est ici la taille de police par défaut du navigateur.
| Relatif | Description |
|---|---|
smaller
|
L’élément actuel est affiché avec une taille inférieure à celle de l’élément parent. |
larger
|
L’élément actuel est affiché avec une taille supérieure à celle de l’élément parent. |
Pour garantir un affichage optimal de la taille de police sur différents appareils des utilisateurs, il est recommandé d’utiliser des unités de mesure relatives comme em ou %.
Le schéma de base du formatage de la taille de police via CSS correspond à l’exemple de code suivant :
.content {
font-size: 1em;
}cssline-height
La propriété CSS line-height est utilisée pour définir la hauteur de ligne d’un paragraphe de texte. Les mêmes unités de mesure que pour font-size s’appliquent, les pourcentages se référant à la font-size du texte concerné. Vous pouvez aussi définir line-height avec des nombres sans unité. D’autres valeurs possibles sont normal (valeur par défaut) et inherit (conformément à l’élément parent).
Une line-height de 1,5 correspond par exemple à une hauteur de ligne de 150 % de la taille de police concernée, soit 1.5em.
.content {
line-height: 1.5;
}cssfont-weight
La propriété CSS font-weight définit la largeur de ligne d’un élément de texte. Les designers l’utilisent pour mettre en gras certains passages. Les valeurs peuvent être définies de manière absolue ou relative par rapport à l’élément parent.
Valeurs absolues pour la propriété font-weight |
Description |
|---|---|
1–1000
|
Valeurs numériques de 1, très fin, à 1000, très gras |
normal
|
Épaisseur normale, correspond à la valeur 400 |
bold
|
Texte en gras, correspond à la valeur 700 |
Les valeurs numériques ne sont pertinentes que pour les Webfonts. En pratique, deux épaisseurs de texte suffisent généralement : normal et bold.
.content {
font-weight: normal;
}
.content {
font-weight: bold;
}cssLes valeurs relatives pour la propriété CSS font-weight définissent la largeur de ligne d’un élément de texte par rapport à la largeur de ligne héritée de l’élément parent.
Valeurs relatives pour la propriété font-weight |
Description |
|---|---|
bolder
|
Affiche le texte avec une épaisseur plus élevée que celle définie pour l’élément parent |
lighter
|
Affiche le texte avec une épaisseur plus faible que celle définie pour l’élément parent |
Formatage du texte
En plus de la mise en forme de la police, CSS met à votre disposition diverses propriétés de mise en forme du texte. Elles vous permettent de définir l’alignement du texte ainsi que l’espacement entre les caractères et les mots, ou d’ajouter des décorations aux éléments de texte.
text-align
La propriété CSS text-align sert à aligner le texte et les éléments inline, c’est-à-dire les éléments intégrés au flux de texte, par exemple des images ou des boutons. Les valeurs courantes sont :
left(aligné à gauche)right(aligné à droite)center(centré)justify(justifié)inherit(comme l’élément parent)
Le code suivant entraîne un alignement centré du texte d’exemple :
.content {
text-align: center;
}cssD’autres valeurs pour la propriété text-align définissent l’alignement du texte par rapport au sens d’écriture d’un texte (direction).
| Valeurs pour l’alignement relatif du texte | Description |
|---|---|
start
|
Le texte est aligné du côté où il commence. Avec un sens d’écriture de gauche à droite { direction: ltr; }, cette valeur correspond à left. Avec un sens d’écriture de droite à gauche { direction: rtl; }, elle correspond à right.
|
end
|
Le texte est aligné du côté où il se termine. |
La valeur start est considérée comme la valeur par défaut (dépend de direction).
Tous les navigateurs courants affichent par défaut la dernière ligne d’un texte justifié alignée à gauche. Si ce comportement n’est pas souhaité, il est possible de la mettre en forme séparément à l’aide de la propriété CSS text-align-last. Les valeurs disponibles correspondent à celles de la propriété text-align.
hyphens
De plus, CSS offre, avec la propriété hyphens, la possibilité de mettre en place une césure automatique. Le langage de feuille de style met à disposition les valeurs suivantes pour la propriété hyphens :
Valeurs pour la propriété hyphens |
Description |
|---|---|
manual
|
La césure est effectuée manuellement : seuls les tirets conditionnels sont pris en compte, ce qui correspond au comportement par défaut. |
none
|
Aucune césure, les tirets conditionnels ne sont pas pris en compte. Les retours à la ligne se font uniquement aux espaces. |
auto
|
La césure est effectuée automatiquement selon les règles linguistiques définies par l’attribut HTML lang.
|
inherit
|
Les paramètres sont hérités de l’élément parent. |
word-spacing
La propriété CSS word-spacing règle l’espacement entre les mots au sein d’un élément de texte. Les exploitants de sites Web ont la possibilité de définir les espaces entre les mots via des valeurs de taille. Pour cela, les unités présentées sous font-size sont disponibles, à l’exception du pourcentage. Les autres valeurs possibles pour la propriété word-spacing sont normal (valeur par défaut) et inherit (selon l’élément parent).
L’exemple de code suivant définit un espacement entre les mots de 2em. Celui-ci s’ajoute à l’espacement par défaut entre les mots.
.content {
word-spacing: 2em;
}cssletter-spacing
Si ce n’est pas l’espacement entre les mots, mais l’espacement entre les lettres qui doit être défini, on utilise la propriété CSS letter-spacing. Ici aussi, des valeurs de taille (à l’exception du pourcentage) ainsi que les valeurs normal et inherit sont disponibles.
L’exemple de code suivant montre un passage de texte dans lequel un mot est mis en évidence grâce à un espacement supplémentaire entre les lettres de 1em.
.special-content {
letter-spacing: 1em;
}csstext-indent
Avec la propriété CSS text-indent, vous avez la possibilité de définir des retraits qui ne s’appliquent qu’à la première ligne d’un paragraphe. Les valeurs possibles incluent des valeurs positives, négatives ainsi que des pourcentages, en relation avec la largeur du bloc de texte concerné.
L’exemple de code suivant définit un retrait de la première ligne de 5 %. La classe est attribuée dans le code source HTML via des éléments span :
.content {
text-indent: 5%;
}cssPour définir des paragraphes à retrait négatif (alinéa suspendu), la propriété text-indent est définie avec une valeur négative.
text-decoration
La propriété CSS text-decoration permet d’appliquer des effets visuels aux éléments de texte, par exemple le soulignement.
Valeurs pour la propriété text-decoration |
Description |
|---|---|
none
|
Aucun effet appliqué au texte. |
underline
|
Chaque ligne du texte concerné est soulignée. |
overline
|
Une ligne est affichée au-dessus de chaque ligne du texte concerné. |
line-through
|
Chaque ligne du texte concerné est barrée. |
inherit
|
Les effets appliqués au texte correspondent à ceux de l’élément parent. |
L’exemple de code suivant définit des soulignements pour des groupes de mots sélectionnés au sein du passage de texte :
.content-underline {
text-decoration: underline;
}csstext-transform
La propriété text-transform permet d’effectuer des transformations de texte via CSS. Vous pouvez ainsi afficher des zones de texte en majuscules ou en minuscules, sans avoir à modifier le texte d’origine. La propriété permet les transformations suivantes :
Valeurs pour la propriété text-transform |
Description |
|---|---|
capitalize
|
La première lettre de chaque mot est affichée en majuscule. |
uppercase
|
L’ensemble du texte est affiché en majuscules. |
lowercase
|
L’ensemble du texte est affiché en minuscules. |
none
|
Aucune transformation n’est appliquée au texte. |
inherit
|
La transformation correspond à celle de l’élément parent. |
Si vous souhaitez afficher les premières lettres d’un passage en majuscules, indépendamment du texte d’origine, la mise en forme suivante est recommandée :
.content {
text-transform: capitalize;
}cssCouleurs du texte et d’arrière-plan
Lors du choix des couleurs du texte et d’arrière-plan, les Webdesigners utilisent généralement les codes couleur déjà expliqués, en écriture décimale ou hexadécimale. Un certain nombre de propriétés utilisent ces codes couleur.
color
La propriété CSS color sert à mettre en forme la couleur du texte. Les valeurs courantes sont des couleurs exprimées en RGB, en codes hexadécimaux ou en HSL. Pour gérer la transparence du texte, on peut utiliser la valeur transparent ou des couleurs avec canal alpha (rgba(), hsl()). La propriété opacity ne fait pas partie de color et modifie la transparence de l’élément dans son ensemble.
.content {
font-family: Arial;
font-size: 5em;
color: #d82451;
}cssbackground-color
La propriété CSS background-color est utilisée lorsqu’une couleur d’arrière-plan doit être attribuée à un élément. Les valeurs possibles correspondent à celles de la propriété color.
L’exemple de code suivant montre une mise en forme de la couleur du texte et de l’arrière-plan :
.content {
font-family: Arial;
font-size: 5em;
color: #d82451;
background-color: #24d8ab;
}cssLa mise en forme indique au navigateur Web d’afficher tous les éléments de texte de la classe content en bordeaux (#d82451) et de leur appliquer un arrière-plan vert turquoise (#24d8ab).
background-image
Comme alternative à une couleur d’arrière-plan, une image peut être chargée en arrière-plan d’un élément. Pour cela, les designers utilisent la propriété background-image, qui contient comme valeur le chemin d’accès vers l’image selon la syntaxe suivante :
.content {
background-image: url("chemin/vers/image.jpg");
}cssAu lieu de background-image ou background-color, vous pouvez aussi utiliser la notation abrégée background.
De plus, CSS offre la possibilité de définir des dégradés de couleurs en arrière-plan :
| Dégradés CSS | Description |
|---|---|
linear-gradient()
|
Génère un dégradé linéaire |
radial-gradient()
|
Génère un dégradé radial |
repeating-linear-gradient()
|
Génère un dégradé linéaire répété |
repeating-radial-gradient()
|
Génère un dégradé radial répété |
Dans notre introduction au CSS pour débutants, nous nous limitons, à titre d’exemple, à la fonction linear-gradient(). Pour appliquer un dégradé linéaire à l’arrière-plan d’un élément, on utilise la fonction linear-gradient() comme valeur de la propriété background. Celle-ci attend au moins deux couleurs en arguments. Le format utilisé pour définir les couleurs n’a pas d’importance.
.content {
width: 400px;
height: 400px;
background: linear-gradient( green, yellow );
}cssBordures
CSS vous permet également d’ajouter une bordure aux éléments HTML. Cela est particulièrement recommandé pour les éléments de niveau bloc (block-level) comme les titres, les paragraphes, les éléments div ou les tableaux HTML, qui apparaissent dans l’élément body. Sans mise en forme supplémentaire, ces blocs de contenu s’étendent sur toute la largeur disponible et se placent les uns sous les autres.
Il convient de distinguer les éléments de niveau bloc des éléments inline tels que <b>, <i>, <a> ou <span>. Les éléments inline apparaissent exclusivement à l’intérieur des éléments de niveau bloc. La largeur d’un élément inline est déterminée uniquement par son propre contenu.
Pour qu’une bordure encadre entièrement un élément de niveau bloc ou un élément inline, on utilise la propriété border. Vous pouvez aussi définir séparément le style de bordure pour chaque côté d’un élément.
| Propriétés des bordures | Description |
|---|---|
border
|
Définit les propriétés de la bordure pour l’ensemble des côtés de l’élément |
border-top
|
Définit les propriétés de la bordure supérieure de l’élément |
border-right
|
Définit les propriétés de la bordure droite de l’élément |
border-bottom
|
Définit les propriétés de la bordure inférieure de l’élément |
border-left
|
Définit les propriétés de la bordure gauche de l’élément |
La propriété border ainsi que les propriétés pour chaque côté de bordure peuvent être précisées davantage. Les valeurs correspondantes s’écrivent après la propriété, séparées par des espaces, selon le schéma suivant :
.content {
border: style width color;
}
.content {
border: solid 4px #ff0000;
}cssDe plus, la propriété border-radius permet d’arrondir les bords de la bordure.
Type de bordure
En choisissant un type de bordure, vous définissez une bordure décorative pour l’élément concerné, de type block-level ou inline. Certains types de bordure ne prennent effet que si une largeur de bordure appropriée a été définie.
| Valeurs possibles pour le type de bordure | Description |
|---|---|
none
|
Aucune bordure |
hidden
|
N’affiche aucune bordure et la supprime également pour les cellules de tableau adjacentes |
dotted
|
Affiche une bordure en pointillés |
dashed
|
Affiche une bordure en tirets |
solid
|
Affiche une bordure continue |
double
|
Affiche une bordure double |
groove, ridge, inset, outset
|
Permettent de créer différents effets visuels de type 3D |
Le graphique suivant compare les types de bordures CSS :

L’indication du type de bordure est obligatoire. Si aucun type de bordure n’est spécifié, le navigateur Web n’affichera pas la bordure, même si des valeurs de largeur ou de couleur de bordure sont définies.
Largeur de bordure
La largeur de bordure définit l’épaisseur de la ligne de la bordure.
| Valeurs possibles pour la largeur de bordure | Description |
|---|---|
| Indication de longueur | La largeur de la bordure est définie à l’aide des unités de mesure utilisées pour font-size. Les pourcentages ne sont pas autorisés pour la largeur de bordure.
|
thin
|
Bordure fine |
medium
|
Bordure de largeur moyenne |
thick
|
Bordure épaisse |
Couleur de bordure
Les paramètres de couleur de la propriété border-color correspondent à ceux des propriétés color et background-color.
| Valeurs possibles pour la couleur de bordure | Description |
|---|---|
| Valeurs de couleur | Les couleurs de bordure peuvent être définies à l’aide de mots-clés, de valeurs HEX, ainsi qu’en RGB ou en HSL. |
transparent
|
Rend la bordure invisible |
L’exemple de code suivant combine la propriété border avec des réglages de police et de couleur d’arrière-plan. L’ensemble des règles est défini dans la feuille de style CSS pour la classe rahmen :
.rahmen {
font-family: Arial;
font-size: 5em;
color: #d82451;
background-color: #24d8ab;
border: 10px ridge #d82451;
}cssborder-radius
La propriété border-radius permet d’arrondir, de manière circulaire ou elliptique, les coins d’une bordure. L’arrière-plan éventuel est alors découpé selon la courbe définie, y compris lorsque l’élément ne possède pas de bordure. Utilisée correctement, border-radius permet aussi de créer des formes géométriques simples.
Les valeurs possibles pour la propriété border-radius correspondent à une à quatre valeurs de longueur, chacune étant associée à un coin de la bordure. Selon les besoins, l’affectation peut se faire avec une, deux, trois ou quatre valeurs.
Valeurs pour la propriété border-radius |
Description |
|---|---|
| Une valeur | La valeur s’applique aux quatre coins de l’élément. |
| Deux valeurs | La première valeur définit les coins en haut à gauche et en bas à droite. La seconde valeur définit les coins en haut à droite et en bas à gauche. |
| Trois valeurs | La première valeur définit le coin en haut à gauche. La deuxième valeur définit les coins en haut à droite et en bas à gauche. La troisième valeur définit le coin en bas à droite. |
| Quatre valeurs | Chaque coin est défini individuellement. L’ordre suit le sens des aiguilles d’une montre : en haut à gauche, en haut à droite, en bas à droite, en bas à gauche. |
Les différentes valeurs du rayon de bordure sont indiquées après la propriété border-radius, séparées par des espaces. On obtient ainsi, pour la déclaration, le schéma suivant (les valeurs numériques sont des exemples) :
border-radius: 4em 2em 3em 1em;cssLa propriété border-radius peut être définie dans le même bloc de règles que la propriété border ou dans des classes séparées.
Le bloc de règles suivant définit une bordure avec un border-radius de 2 em :
.rahmen {
height: 100px;
width: 600px;
border: solid 10px #d82451;
border-radius: 2em;
}css
.rahmen {
height: 100px;
width: 600px;
border: solid 10px #d82451;
border-radius: 2em 1em 3em 4em;
}css
Dans les deux cas, les angles de la bordure sont arrondis de manière circulaire. Si l’arrondi doit être elliptique, deux valeurs sont nécessaires pour chaque angle. La déclaration d’une bordure aux angles arrondis de façon elliptique peut donc comporter jusqu’à huit valeurs :
border-radius: 1em 4em 1em 4em / 4em 1em 4em 1em;cssLes valeurs avant le slash (/) définissent le rayon sur le demi-axe horizontal de l’ellipse, celles après le slash définissent le rayon sur le demi-axe vertical.
.rahmen {
height: 100px;
width: 600px;
border: solid 10px #d82451;
border-radius: 1em 4em / 4em 1em;
}css
Tout arrière-plan éventuel est automatiquement découpé selon la courbe.
.rahmen {
height: 100px;
width: 600px;
border: solid 10px #d82451;
border-radius: 2em;
background-color: #24d8ab;
}css
Cela s’applique aussi bien aux couleurs d’arrière-plan qu’aux images d’arrière-plan, mais pas aux éléments de texte.

Positionnement
La propriété CSS position permet de retirer une boîte du flux normal des éléments et de la placer librement à un endroit précis du site Web. Les autres boîtes, qu’elles fassent partie du flux ou qu’elles soient elles aussi positionnées, n’influencent pas la position d’un élément ainsi défini.
La propriété position accepte différentes valeurs, qui sont précisées à l’aide des propriétés left, right, top et bottom, ainsi que de valeurs exprimées dans des unités de mesure :
Valeurs de la propriété position |
Description |
|---|---|
absolute
|
Positionne la boîte par rapport à l’élément parent le plus proche dont la propriété position n’est pas définie sur static
|
relative
|
Positionne la boîte par rapport à sa position normale dans le flux des éléments |
fixed
|
Positionne la boîte par rapport à la fenêtre du navigateur et la maintient fixe lors du défilement |
static
|
Position naturelle de la boîte dans le flux du document ; avec position: static, les propriétés de positionnement n’ont aucun effet ; il s’agit de la valeur par défaut
|
sticky
|
Positionne la boîte comme avec position: relative tant qu’elle reste dans le viewport ; lorsqu’elle atteint une limite définie, elle se comporte comme un élément fixed et reste visible lors du défilement
|
Positionnement absolu
Avec position: absolute, l’élément est retiré du flux normal du document et positionné par rapport à son ancêtre positionné le plus proche, c’est-à-dire le premier élément parent dont la propriété position n’est pas définie sur static. Si aucun ancêtre positionné n’existe, le positionnement se fait par rapport au bloc de référence (containing block), qui correspond généralement à l’élément racine du document (<html> ou le viewport).
Les propriétés top, right, bottom et left permettent alors de définir précisément la position de l’élément à l’intérieur de ce bloc de référence.
Les règles suivantes définissent un positionnement absolu pour les boîtes CSS .rouge, .bleu et .vert à l’intérieur de l’élément parent .background.
.background {
position: relative;
height: 500px;
width: 500px;
border: 1px solid grey;
}
.rouge {
height: 150px;
width: 150px;
background-color: rgba(255, 0, 0, 0.5);
position: absolute;
top: 100px;
left: 100px;
}
.bleu {
height: 150px;
width: 150px;
background-color: rgba(0, 0, 255, 0.5);
position: absolute;
top: 150px;
left: 150px;
}
.vert {
height: 150px;
width: 150px;
background-color: rgba(0, 255, 0, 0.5);
position: absolute;
top: 200px;
left: 200px;
}cssLes boîtes de contenu .rouge, .bleu et .vert sont mises en forme comme des surfaces semi-transparentes de 150 px × 150 px. La boîte de contenu .background, d’une taille de 500 px × 500 px, est entourée d’une bordure grise.
Les instructions de mise en forme sont intégrées dans le code HTML via des classes.
<div class="background">
<p class="rouge"> </p>
<p class="bleu"> </p>
<p class="vert"> </p>
</div>htmlL’affichage dans le navigateur montre le positionnement différent des boîtes à l’intérieur de l’élément <div>. Les éléments sont chacun décalés de 50 px vers la droite et vers le bas. La coloration transparente met en évidence la possibilité de chevauchement avec le positionnement absolu.

Positionnement relatif
Avec le positionnement relatif, la boîte reste intégrée dans le flux naturel des éléments, mais peut être déplacée par des indications de positionnement relatives à ce flux. La boîte s’aligne donc sur elle-même. Les éléments précédents et suivants dans le flux se comportent comme si la boîte n’avait pas été déplacée.
Pour aligner une boîte à partir de sa position dans le flux des éléments, on complète la règle correspondante avec la déclaration position: relative ainsi qu’avec les valeurs de position souhaitées.
Le bloc de code suivant illustre cela à l’exemple de la boîte bleue :
.bleu {
height: 150px;
width: 150px;
background-color: rgba(0,0,255,0.5);
position: relative;
left: 50px;
}cssL’instruction de mise en forme position: relative, associée à l’indication de position left: 50px, provoque dans l’affichage du navigateur un décalage de la boîte bleue de 50 px vers la droite.

Le positionnement relatif peut également s’appliquer aux éléments flottants.
Boîtes CSS fixes
L’alignement des boîtes fixes s’effectue, comme pour le positionnement absolu, indépendamment du flux des éléments. Toutes les indications de positionnement sont définies par rapport au viewport. Une boîte ainsi fixée apparaît toujours au même endroit à l’écran, même lorsqu’un utilisateur fait défiler la page. Vous pouvez ainsi épingler des éléments de navigation, comme des menus ou des boutons d’ancrage (p. ex. « Retour en haut de page »), dans la zone visible.
Apprendre à utiliser le modèle de boîte CSS
Le modèle de boîte CSS décrit la manière dont les navigateurs affichent et positionnent les éléments HTML sous forme de surfaces rectangulaires (« boîtes »). Au cœur de tout site Web se trouve l’interaction de ces boîtes, dont la disposition est déterminée par ce que l’on appelle le flux des éléments : par défaut, les éléments sont placés de gauche à droite et de haut en bas.
CSS distingue deux types de boîtes :
- Les boîtes de type bloc (
div,p) occupent par défaut toute la largeur de leur élément parent et commencent toujours sur une nouvelle ligne. - Les boîtes en ligne (
span,b,i) sont affichées dans le flux du texte et s’adaptent au contenu.
Les graphiques suivants permettent d’illustrer le flux des éléments des boîtes de type bloc et des boîtes en ligne :

Les boîtes de type bloc structurent la mise en page, tandis que les boîtes en ligne gèrent le texte et les éléments inline. Les conteneurs vides comme <div> servent souvent uniquement au regroupement et à la mise en forme via CSS.
| Couches du modèle de boîte | Description |
|---|---|
| Zone de contenu (content box) | Cette surface correspond à l’espace occupé par le contenu, qui dépend du texte ou des dimensions d’une image ; pour les éléments de type bloc, sa hauteur et sa largeur peuvent être définies avec height et width. Pour les éléments inline, ce type de mise en forme n’est pas disponible.
|
| Espacement intérieur (padding box) | La padding box définit l’espace entre la zone de contenu (content box) et la bordure (border box). |
| Bordure (border box) | La border box correspond à la bordure de l’élément. |
| Marge extérieure (margin box) | La margin box définit l’espace entre l’élément et son élément parent ou les éléments voisins. La propriété margin peut également prendre des valeurs négatives.
|
Si vous souhaitez mettre en forme simultanément les quatre côtés d’une boîte, utilisez les propriétés padding, border et margin :
| Espacement intérieur | Bordure | Marge extérieure | |
|---|---|---|---|
| haut | padding-top
|
border-top
|
margin-top
|
| bas | padding-bottom
|
border-bottom
|
margin-bottom
|
| gauche | padding-left
|
border-left
|
margin-left
|
| droite | padding-right
|
border-right
|
margin-right
|
Les valeurs possibles pour les propriétés listées sont des valeurs de taille ainsi que inherit (selon l’élément parent). Les marges extérieures peuvent également être définies avec la valeur auto.
Le graphique suivant illustre la structure schématique d’une boîte CSS :

Modèle de boîte CSS en pratique
On peut illustrer le modèle de boîte CSS en ajoutant, étape par étape, les différentes couches à une boîte de contenu. Le point de départ est un court extrait de texte qui, dans cet exemple, doit être mis en forme au moyen du sélecteur de classe :
<p class="content">At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctusest Lorem ipsum dolor sit amet.</p>htmlL’ensemble de règles suivant définit, pour la boîte de contenu, des dimensions de 150 px × 150 px. D’autres mises en forme définissent une police noire sur fond gris. De plus, le texte doit être justifié :
.content {
height: 150px;
width: 150px;
color: #000000;
text-align: justify;
background-color: #808080;
}cssAppliquées à l’extrait de texte, ces instructions de mise en forme donnent l’affichage suivant dans le navigateur Web :

L’extrait de texte apparaît, conformément au flux des éléments, dans l’angle supérieur gauche de son élément parent. Le texte et la couleur d’arrière-plan commencent sans marge sur le côté gauche de la fenêtre du navigateur et occupent toute la surface disponible. L’arrière-plan s’arrête exactement au bord du texte.
Un tel design est peu esthétique et rend la lecture plus difficile. La propriété padding permet donc aux Webdesigners de définir une marge intérieure afin de séparer les éléments de texte des éléments de mise en forme qui les entourent.
.content {
height: 150px;
width: 150px;
color: #000000;
background-color: #808080;
text-align: justify;
padding: 10px;
}cssAjoutée au jeu de règles, la déclaration padding: 10px; entraîne la modification suivante dans l’affichage côté frontend :

Le navigateur Web applique une marge intérieure de 10 px sur les quatre côtés de la content box. En complément, il est possible d’ajouter une bordure comme élément de mise en forme.
.content {
height: 150px;
width: 150px;
color: #000000;
background-color: #808080;
text-align: justify;
padding: 10px;
border: 5px solid #d82451;
}cssDans l’exemple de code, la propriété border est utilisée pour ajouter à l’élément un cadre bordeaux, continu.

Ainsi, un cadre est séparé du contenu par la valeur de padding.
Conformément au flux naturel des éléments, la boîte ainsi mise en forme se place sans espace dans l’angle supérieur gauche de l’élément parent. La propriété margin permet d’aérer le design d’un site Web grâce à une marge extérieure. Pour cela, il suffit d’ajouter la déclaration correspondante au jeu de règles existant :
.content {
height: 150px;
width: 150px;
color: #000000;
background-color: #808080;
text-align: justify;
padding: 10px;
border: 5px solid #d82451;
margin: 40px;
}cssDans le navigateur Web, une marge extérieure de 40 px est appliquée comme suit :

Comme alternative à l’indication d’une valeur, la propriété margin peut être définie avec la valeur auto. Dans ce cas, la boîte s’aligne automatiquement au centre, horizontalement, à l’intérieur de l’élément parent. Verticalement, auto n’a aucun effet.
L’espace occupé par une boîte CSS se calcule en additionnant les valeurs de tous les éléments qui la composent.
Mise en forme de la boîte avec float
Si la boîte à mettre en forme est une boîte de type bloc, les boîtes suivantes passent automatiquement à la ligne suivante, conformément au flux des éléments.
Le retour à la ligne automatique après une boîte de type bloc n’est pas toujours souhaité en pratique et peut être empêché à l’aide de la propriété float. Celle-ci retire les boîtes de type bloc du flux normal des éléments et les place à l’endroit souhaité.
Valeurs pour la propriété float |
Description |
|---|---|
none
|
Aucun déplacement de l’élément n’est effectué. Il s’agit de la valeur par défaut d’une boîte CSS. |
left
|
La boîte de type bloc est déplacée vers le bord intérieur gauche de l’élément parent. |
right
|
La boîte de type bloc est déplacée vers le bord intérieur droit de l’élément parent. |
inherit
|
La valeur de float est héritée de l’élément parent.
|
Une boîte avec une mise en forme float est appelée float.
Lorsque plusieurs éléments flottants se rencontrent, ils sont disposés dans l’ordre où ils apparaissent dans le code source HTML, de gauche à droite (float: left) ou de droite à gauche (float: right).
L’exemple de code suivant montre un ensemble de règles incluant la propriété float :
.content {
height: 150px;
width: 150px;
color: #000000;
background-color: #808080;
text-align: justify;
padding: 20px;
border: 5px solid #d82451;
margin: 40px;
float: left;
}cssLorsqu’elle est appliquée à deux éléments HTML, ceux-ci sont retirés du flux du document et alignés à gauche l’un à côté de l’autre :
<p class="content">At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctusest Lorem ipsum dolor sit amet.</p>
<p class="content">Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus.</p>html
Le grand espace s’explique par le fait que les marges externes des deux boîtes s’additionnent. Sans float, les marges des éléments adjacents se fusionneraient.
Créer un Webdesign responsive avec CSS
Pour concevoir un Webdesign responsive, le langage de feuilles de style propose deux techniques de mise en page modernes : Flexbox et Grid. Ces deux systèmes adaptent les contenus de manière dynamique aux différentes tailles d’écran. En combinaison avec les Media Queries CSS, il est également possible d’ajuster les mises en page de façon ciblée à différents appareils et largeurs d’écran.
Flexbox
Avec CSS Flexbox (Flexible Box Layout), il est particulièrement simple de concevoir des mises en page unidimensionnelles. Flexbox aligne les contenus horizontalement ou verticalement, ce qui en fait une solution idéale pour les navigations, les galeries ou des zones de contenu modulaires.
Un conteneur flex est défini via la propriété display: flex;. Tous les éléments enfants directs deviennent automatiquement des « flex items », dont il est possible de contrôler de manière flexible le positionnement, l’ordre et la taille.
| Propriété | Description |
|---|---|
flex-direction
|
Cette propriété détermine la direction principale des flex items. La valeur row correspond à un alignement horizontal, column à un alignement vertical. Les valeurs row-reverse et column-reverse inversent respectivement le sens d’alignement.
|
justify-content
|
Les flex items sont alignés le long de l’axe principal. flex-start aligne les éléments au début de l’axe, flex-end à la fin et center au centre. Les valeurs space-between, space-around et space-evenly définissent différents modes de répartition de l’espace entre les éléments.
|
align-items
|
Les flex items sont alignés le long de l’axe transversal. Les valeurs flex-start, flex-end et center fonctionnent de manière similaire à justify-content. Les valeurs supplémentaires baseline permettent un alignement sur la ligne de base et stretch étire les éléments pour remplir le conteneur.
|
flex-wrap
|
La propriété définit si les flex items peuvent passer à la ligne. Avec nowrap, valeur par défaut, tous les éléments restent sur une seule ligne. Les valeurs wrap et wrap-reverse autorisent les retours à la ligne, éventuellement dans le sens inverse.
|
gap
|
gap définit l’espacement entre les flex items
|
Un exemple simple montre l’agencement horizontal des éléments avec un espacement uniforme :
.container {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
gap: 10px;
}cssLes règles s’appliquent au code HTML suivant :
<div class="container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
</div>htmlDe plus, il est également possible de contrôler individuellement le comportement de certains flex items. Avec la propriété flex, vous pouvez par exemple définir dans quelle mesure un élément peut s’agrandir ou se réduire par rapport aux autres. Ici, la valeur 2 correspond à un doublement :
.item1 {flex: 2; }cssMise en page en grille (Grid)
Avec un CSS Grid, les contenus d’un site Web peuvent être disposés dans une grille bidimensionnelle. Le système de grille permet un contrôle précis des lignes et des colonnes, ce qui facilite la mise en place de mises en page complexes de manière simple et flexible. Pour créer une grille, on attribue à un élément parent la propriété display: grid;. Tous les éléments enfants directs de ce conteneur deviennent automatiquement des grid items. Ensuite, la grille peut être ajustée à l’aide d’un grand nombre de propriétés.
| Propriété | Description |
|---|---|
grid-template-columns
|
Définit la structure des colonnes de la grille. L’unité fr indique des fractions de l’espace disponible. Avec auto, la taille est déterminée automatiquement.
|
grid-template-rows
|
Définit la structure des lignes de la grille ; les valeurs possibles sont les mêmes que pour grid-template-columns
|
gap
|
Définit l’espacement entre les grid items |
justify-items
|
Définit l’alignement horizontal des grid items. start aligne au début, end à la fin et center centre l’alignement ; la valeur par défaut stretch étire l’élément pour remplir la cellule
|
align-items
|
Définit l’alignement vertical des grid items ; les valeurs possibles sont les mêmes que pour justify-items
|
Un exemple montre la structure d’une grille avec trois colonnes de même largeur et deux lignes, à l’aide de valeurs fr uniformes :
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: auto auto;
gap: 10px;
}cssChaque grid item peut également être positionné de manière ciblée, par exemple pour s’étendre sur plusieurs colonnes ou lignes. Pour cela, les propriétés grid-column et grid-row sont disponibles. On indique la ligne de début (inclusive) et la ligne de fin (exclusive), séparées par un slash (/). Dans l’exemple suivant, l’élément s’étend sur deux colonnes et une ligne.
.item1 {
grid-column: 1 / 3;
grid-row: 1;
}cssMedia queries
Les media queries permettent d’appliquer des règles CSS en fonction des caractéristiques de l’appareil. Ainsi, la mise en page peut différer sur smartphone, tablette et écran d’ordinateur, sans nécessiter plusieurs fichiers HTML. Une media query permet d’activer ou d’écraser des styles de manière ciblée dès que certaines conditions sont remplies. L’usage le plus courant est l’adaptation à différentes largeurs de viewport, pour laquelle les valeurs suivantes sont nécessaires :
| Propriété / syntaxe | Description |
|---|---|
@media
|
Introduit une media query |
screen, print, all
|
Définit le type de média auquel les règles CSS s’appliquent |
min-width
|
Active les règles CSS à partir d’une largeur minimale définie |
max-width
|
Active les règles CSS jusqu’à une largeur maximale définie |
Un exemple montre comment une media query peut être utilisée pour modifier la mise en page en dessous d’une certaine largeur :
/ *Mise en page standard pour les écrans plus grands* /
.container {display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
/ *Adaptation pour les écrans plus petits* /
@media (max-width: 768px) {
.container {
grid-template-columns: 1fr;
}
}cssPlusieurs conditions peuvent aussi être combinées, par exemple pour modifier les mises en page uniquement sur les tablettes en mode portrait :
@media screen and (min-width: 600px) and (max-width: 900px) and (orientation: portrait) {
body {
font-size: 1.1em;
}
}cssExploiter les variables CSS
Les variables CSS (aussi appelées custom properties) permettent de stocker des valeurs de manière centralisée et de les réutiliser plusieurs fois dans la feuille de style. Vous pouvez ainsi modifier des couleurs, des espacements ou des tailles de police à un seul endroit, sans devoir adapter tout le CSS. Le code est alors plus lisible, plus facile à maintenir et plus cohérent.
Les variables CSS sont définies avec un double tiret (--) et s’utilisent via la fonction var().
| Syntaxe | Description |
|---|---|
--nom-de-variable
|
Définit une variable personnalisée |
var(--nom-de-variable)
|
Récupère la valeur d’une variable définie |
:root
|
La portée globale (correspond à l’élément HTML le plus haut) |
Un exemple montre comment définir et utiliser des variables :
:root {
--main-color: #ff4081;
--text-color: #333;
--padding: 10px;
}
button {
background-color: var(--main-color);
color: var(--text-color);
padding: var(--padding);
}cssIci, les variables --main-color, --text-color et --padding sont définies dans :root, donc globalement pour toute la page. Le bouton utilise ces variables avec var(), de sorte que la couleur d’arrière-plan, la couleur du texte et l’espacement sont automatiquement repris à partir des valeurs des variables.

