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
Margin
Border
Padding
Contenu (width & height)
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. |
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. |
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 |
|---|---|---|
justify-content |
|
Aligne les éléments sur l'axe principal (horizontal par défaut).
space-between:
1 2 3 1 2 3 |
align-items |
|
Aligne les éléments sur l'axe secondaire (vertical par défaut).
center:
A
B
C
|
flex-wrap |
|
Permet aux éléments de passer à la ligne s'ils n'ont plus de place.
1
2
3
4
|
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. |
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é