Intégration et syntaxe
Utiliser un fichier externe contenant le code CSS est la méthode la plus appropriée pour associer un style CSS à une page HTML. Ce fichier de style pourra ainsi aisément être exploité pour les autres pages du site web.
| Concept | Description et Exemple |
|---|---|
| Fichier externe (linked) | Le code CSS est dans un fichier séparé (ex: style.css), lié dans le <head>. |
| Interne (embedded) | Le CSS est placé dans une balise <style> dans le <head>. |
| En ligne (inline) | Le style est appliqué directement sur une balise via l'attribut style. |
| Commentaires | Les commentaires dans le code CSS commencent par /* et finissent par */. |
Sélecteurs courants
| Type de sélecteur | Exemple et syntaxe | Description |
|---|---|---|
| Sélecteur Universel | | Cible tous les éléments de la page. |
| Sélecteur de Type (Balise) | | Cible toutes les balises d'un certain type. |
| Sélecteur de Regroupement | | Applique des propriétés identiques à tous les sélecteurs énumérés. |
| Sélecteur de Classe | | Cible tous les éléments avec la classe spécifiée. |
| Sélecteur d'Id | | Cible l'élément unique avec l'ID spécifié. |
| Sélecteur de Pseudo-classe | | Cible un état particulier d'un élément (survol, premier enfant, etc.). Ex: :link, :visited, :active, :hover, :focus, ::first-letter,... |
| Sélecteur d'Attribut | | Cible les éléments ayant un certain attribut. |
| Sélecteur Descendant | | Cible les balises <p> situées n'importe où à l'intérieur d'un <article>. |
| Sélecteur Descendant Direct | | Cible les <li> qui sont des enfants directs d'un <ul>. |
| Sélecteur Voisins | | Les sélecteurs voisins permettent de cibler un ou plusieurs éléments qui suivent directement ou non un autre élément à la condition que ces éléments aient le même parent. |
| Sélecteur Voisins Direct | | Les sélecteurs voisins directs permettent de cibler un élément qui suit directement un autre. |
Unités et valeurs courantes
| Type | Unité | Description |
|---|---|---|
| Absolues | px (pixels) | Unité de référence fixe, souvent utilisée pour les bordures ou des tailles précises (1pixel = 1/96eme de pouce). |
pt / pc | Valeur exprimée en points/pica sachant que 1 point vaut 1/72 de pouce et 1 pica vaut 12 points. | |
cm / mm | Valeur exprimée en centimètres ou millimètres. | |
small / large | Valeur exprimée à l’aide d’un mot-clé qui tient compte des paramètres de l’utilisateur. D’autres mots-clés sont aussi possibles : xx-small, x-small, medium, large, x-large et xx-large. | |
| Relatives | % | Relatif (en pourcent) à la taille de l'élément parent. |
em / rem | Relatif à la taille de police de l'élément parent / racine. Très pratique pour des mises à l'échelle globales. | |
smaller / larger | Valeur exprimée par rapport à la taille de l’élément parent. Ce sera plus petit (smaller) ou plus grand (larger). | |
vw / vh | 1% de la largeur (viewport width) ou de la hauteur (viewport height) de la fenêtre. | |
vmin / vmax | Valeur exprimée par rapport à 1% de la plus petite/grande dimension (hauteur ou largeur) du viewport |
Le Box Model
Chaque élément HTML peut être vu comme une boîte. Le Box Model CSS est le modèle qui régit la façon dont ces boîtes sont dimensionnées et comment elles interagissent.
Visualisation du Box Model
Syntaxe raccourcie (padding, margin, etc.)
Plusieurs propriétés comme padding, margin ou border-width peuvent accepter de 1 à 4 valeurs pour définir les côtés individuellement.
| Nombre de valeurs | Signification (dans l'ordre) | Exemple |
|---|---|---|
| 1 valeur | Applique la même valeur aux 4 côtés. | padding: 10px; |
| 2 valeurs | [Haut/Bas] [Gauche/Droite] | padding: 10px 20px; |
| 3 valeurs | [Haut] [Gauche/Droite] [Bas] | padding: 10px 20px 5px; |
| 4 valeurs | [Haut] [Droite] [Bas] [Gauche] (dans le sens des aiguilles d'une montre) | padding: 10px 20px 5px 15px; |
Propriétés du Box Model
| Propriété | Définition | Exemple de code | Résultat |
|---|---|---|---|
width, height |
Définit la largeur et la hauteur de la zone de contenu de l'élément. | |
|
padding |
Définit l'espace intérieur entre le contenu et la bordure de l'élément. | |
Contenu |
border |
Définit une bordure autour de l'élément. C'est un raccourci pour border-width, border-style, et border-color. |
|
|
margin |
Définit l'espace extérieur, autour de la bordure de l'élément. Sépare les éléments les uns des autres. | |
|
box-sizing |
Change la manière dont la largeur et la hauteur totales d'un élément sont calculées. border-box est la valeur la plus intuitive et recommandée. |
|
Avec border-box, un élément de width: 100px et padding: 10px aura une largeur totale de 100px (padding inclus). |
Typographie
| Propriété | Exemple de code | Description et Résultat |
|---|---|---|
font-family |
|
Définit la police du texte. C'est une "pile" : le navigateur essaie la première police, puis la suivante si la première n'est pas disponible.
Police avec serif (Times).
|
font-size |
|
Définit la taille du texte. Utiliser des unités relatives comme rem est une bonne pratique.
12px,
16px,
20px.
|
font-weight |
|
Définit l'épaisseur de la police.
Normal (400),
Bold (700).
|
font-style |
|
Définit le style de la police.
Normal,
Italic,
Oblique.
|
color |
|
Définit la couleur du texte.
Rouge,
#ff0000,
rgb,
rgba.
|
text-align |
|
Aligne le texte horizontalement. Valeurs possibles : left, right, center, justify.
Ce texte est justifié. Les lignes sont étirées pour que chaque ligne ait une largeur égale, créant des marges droites et gauches nettes.
|
text-decoration |
|
Ajoute une décoration au texte. Valeurs communes : none, underline, overline, line-through.
underline,
overline,
line-through.
|
text-transform |
|
Modifie la casse du texte. Valeurs communes : none, uppercase, lowercase, capitalize.
uppercase,
LOWERCASE,
capitalize every word.
|
line-height |
|
Définit la hauteur de ligne, c'est-à-dire l'interligne.
Ce paragraphe a un interligne plus grand pour une meilleure lisibilité. Il est de 1.5 fois la taille de la police.
|
Arrière-Plans (Backgrounds)
| Propriété | Exemple de code | Description et Usage |
|---|---|---|
background-color |
|
Définit la couleur de fond d'un élément. Accepte les mêmes formats que la propriété color. |
background-image |
|
Applique une image en arrière-plan. Par défaut, l'image se répète si elle est plus petite que l'élément. |
background-repeat |
|
Contrôle la répétition de l'image de fond. Valeurs : repeat (défaut), no-repeat, repeat-x (horizontal), repeat-y (vertical). |
background-size |
|
Définit la taille de l'image de fond. Valeurs utiles : auto, cover (couvre toute la zone, quitte à couper l'image), contain (assure que l'image entière est visible). |
Mise en Forme des Listes
| Propriété | Exemple de code | Résultat et Description |
|---|---|---|
list-style-type |
|
Modifie le style du marqueur (puce ou numéro).
|
list-style-image |
|
Remplace le marqueur par une image. |
list-style-position |
|
Définit si le marqueur est placé à l'intérieur (inside) ou à l'extérieur (outside, défaut) de la boîte de l'élément. |
Bordures (Borders)
| Propriété | Exemple de code | Description et Résultat |
|---|---|---|
border |
|
Propriété raccourcie pour définir l'épaisseur (border-width), le style (border-style) et la couleur (border-color) de la bordure en une seule ligne. |
border-[côté] |
|
Permet de styler la bordure d'un seul côté à la fois (border-top, border-right, border-bottom, border-left). |
border-radius |
|
Arrondit les angles d'un élément.
|
Mise en forme des tableaux
| Propriété | Exemple de code | Description et Résultat | ||||
|---|---|---|---|---|---|---|
border-collapse |
|
Fusionne les bordures des cellules en une seule. La valeur par défaut est separate (bordures séparées).
collapse:
|
||||
border-spacing |
|
Définit l'espace horizontal et vertical entre les bordures des cellules. Ne fonctionne qu'avec border-collapse: separate;.
|
||||
padding |
|
Ajoute de l'espace à l'intérieur des cellules (th et td), entre le contenu et la bordure, pour une meilleure lisibilité.
|
||||
border-width |
|
Définit l'épaisseur de la bordure.
|
||||
border-style |
|
Définit le style de la bordure (solid, dotted, dashed, double, etc.).
|
||||
border-color |
|
Définit la couleur de la bordure.
|
||||
:nth-child() |
|
Permet de styler des lignes en alternance (lignes "zébrées") pour améliorer la lisibilité des grands tableaux.
|
Disposition et Positionnement
Ces propriétés contrôlent la manière dont les éléments sont positionnés sur la page.
Propriété display
| Valeur | Exemple de code | Description | Résultat |
|---|---|---|---|
block |
|
L'élément prend toute la largeur disponible et crée des sauts de ligne. (Ex: <div>, <p>). |
Élément bloc 1 Élément bloc 2 |
inline |
|
L'élément ne prend que la largeur de son contenu et ne crée pas de sauts de ligne. (Ex: <span>, <a>). |
Élément en ligne 1. Élément en ligne 2. |
inline-block |
|
Combine les deux : se place en ligne mais peut avoir une largeur et une hauteur définies. | Boîte 1 Boîte 2 |
none |
|
L'élément est complètement retiré de la page et n'occupe aucun espace. | |
flex |
|
Active le modèle de mise en page Flexbox. Transforme les enfants directs en "flex items". | 1 2 |
grid |
|
Active le modèle de mise en page Grid. Permet une mise en page complexe en deux dimensions (lignes et colonnes). | A B |
Flexbox
Un modèle de mise en page unidimensionnel puissant pour aligner et distribuer l'espace entre les éléments.
| Propriété (sur le parent) | Exemple de code | Résultat et Description |
|---|---|---|
justify-content |
|
Aligne les éléments sur l'axe principal (horizontal).
flex-start (défaut):
1 2 1 2 1 2 1 2 |
align-items |
|
Aligne les éléments sur l'axe secondaire (vertical).
stretch (défaut):
A B A B |
gap |
|
Définit l'espace entre les éléments flex (ou les colonnes/lignes grid).
1
2
3
|
Grid
Un modèle de mise en page en deux dimensions (lignes et colonnes), extrêmement puissant pour les layouts complexes.
| Propriété | Exemple de code | Résultat et Description |
|---|---|---|
grid-template-columns |
|
Définit le nombre et la taille des colonnes. L'unité fr (fraction) représente une fraction de l'espace disponible.
1fr
1fr
2fr
|
Positionnement
| Propriété | Exemple de code | Description | Résultat |
|---|---|---|---|
position: relative; |
|
Positionne l'élément par rapport à sa position normale. Peut être décalé avec top, left, etc. |
Boîte normale. Boîte relative |
position: absolute; |
|
Positionne l'élément par rapport à son premier parent positionné (non-statique). Sort du flux normal. | Parent (relative) Enfant (absolu) |
position: fixed; |
|
Positionne l'élément par rapport à la fenêtre du navigateur. Il reste fixe lors du défilement. | Difficile à démontrer ici, mais un menu fixé en haut de page utilise cette propriété. |
position: sticky; |
|
Se comporte comme relative jusqu'à un certain point de défilement, puis devient fixed. |
L'en-tête de cette page est un excellent exemple de position: sticky. |
float |
|
Permet à un élément de "flotter" à gauche ou à droite, forçant le contenu à s'enrouler autour. | Ce texte s'enroule autour de l'image qui flotte à gauche, ce qui est l'usage principal de la propriété float. |
Gestion du débordement (Overflow)
La propriété overflow contrôle ce qui se passe lorsque le contenu est trop grand pour tenir dans la zone d'un élément.
Condition importante : Pour que overflow ait un effet, l'élément (bloc) doit avoir une taille définie (hauteur height ou largeur width) qui contraint le contenu.
| Propriété / Valeur | Exemple de code | Description et Résultat |
|---|---|---|
overflow: visible; |
|
C'est la valeur par défaut. Le contenu n'est pas coupé, il dépasse de la boîte et peut chevaucher les éléments suivants.
Ce texte est beaucoup trop long pour tenir dans cette petite boîte de 120x60px. |
overflow: hidden; |
|
Le contenu qui dépasse est coupé et le reste est invisible. Aucun moyen de le voir.
|
overflow: scroll; |
|
Ajoute des barres de défilement (scrollbars) pour voir le reste du contenu. Note : Les barres sont ajoutées même si le contenu tient dans la boîte (selon l'OS).
Ce texte est beaucoup trop long pour tenir dans cette petite boîte de 120x60px. |
overflow: auto; |
|
Similaire à scroll, mais les barres de défilement n'apparaissent que si nécessaire. C'est souvent le choix préféré.
Ce texte est beaucoup trop long pour tenir dans cette petite boîte de 120x60px. |
overflow-xoverflow-y |
|
Permet de gérer le débordement indépendamment sur l'axe horizontal (x) ou vertical (y).
|
Gérer les Transitions
Les transitions CSS permettent de passer d'une valeur de style à une autre en douceur (animation), plutôt que de changer instantanément. Elles se déclenchent souvent lors d'un changement d'état (ex: :hover).
| Propriété | Exemple de code | Description et Résultat (Survolez les boîtes !) |
|---|---|---|
transition-propertytransition-duration |
|
Définit quelle propriété CSS doit être animée et combien de temps cela prend.
Survolez-moi (0.5s)
|
transition-timing-function |
|
Définit la courbe de vitesse de l'effet (accélération/décélération).
Survolez cette zone :
Linear (Constant)
Ease (Défaut)
Ease-in-out
Steps(5) (Saccadé)
|
transition-delay |
|
Définit un temps d'attente avant que l'effet de transition ne commence.
Wait 1s
|
transition (Raccourci) |
|
La syntaxe courte est la plus utilisée. all permet d'animer toutes les propriétés changeantes.
Survolez-moi
(Tout change) |
Responsive Design (Media Queries)
Les Media Queries permettent d'appliquer des styles CSS différents en fonction des caractéristiques de l'appareil, comme la largeur de l'écran.
| Syntaxe | Usage |
|---|---|
|
Cette règle change la couleur de fond du body en bleu clair lorsque la largeur de la fenêtre du navigateur est inférieure ou égale à 600 pixels. C'est la base du design responsive. |
Ce texte s'enroule autour de l'image qui flotte à gauche, ce qui est l'usage principal de la propriété