PhpBB Lab Académie

Rechercher dans ce cours

Cours CSS : Apprendre le CSS : cours gratuit pour débutants

Auteur : phpBB-Lab. Date de cette version : lun. 21 sept. 2026 02:17.

Transformer la navigation commune en conteneur Flexbox

Objectif de la leçon

Appliquer display: flex à la liste des liens Accueil, À propos et Contact, distinguer le conteneur de ses enfants directs et préserver le menu HTML.

Explications

Le composant que nous allons améliorer

Les trois pages possèdent le même nav, contenant un ul, trois li et les liens Accueil, À propos et Contact. Nous allons organiser cette liste avec Flexbox.

Flexbox est un système de disposition principalement organisé selon un axe. Pour notre groupe de liens, il permet de régler la présentation depuis leur parent plutôt que de positionner chaque lien manuellement.

1. Ajouter la classe à la bonne balise

Dans les trois pages, remplacez uniquement l’ouverture du ul à l’intérieur de nav par :

<ul class="navigation-principale">



Ne mettez pas la classe sur la liste Ce que j’ai appris. Les destinations restent index.html, apropos.html et contact.html, dans cet ordre. Vous ne créez pas un deuxième menu.

2. Comprendre display: flex

La propriété display définit notamment le modèle de mise en page utilisé par un élément. Avec flex, cet élément devient un conteneur flex pour ses enfants directs.

Ajoutez dans styles.css :

.navigation-principale {
    display: flex;
}



Le conteneur est donc le ul. Ses éléments flexibles sont les trois li, pas directement les liens a : chaque a est à l’intérieur de son li. Flexbox ne transforme pas tous les descendants du menu en éléments flexibles de ce même conteneur.

3. Le comportement initial en ligne

La direction par défaut de Flexbox est row. Dans notre document français, avec son mode d’écriture habituel, les éléments suivent une ligne de gauche à droite. La propriété qui permet de choisir cette direction s’appelle flex-direction ; nous la modifierons plus tard.

Le mot row ne signifie pas « toujours horizontal dans tous les modes d’écriture ». Pour l’exercice présent, il correspond bien à la rangée de nos trois liens.

La liste garde encore ses espacements et puces de navigateur. C’est normal à cette étape : nous ne les avons pas encore réglés.

4. Le parent n’est pas le lien

Écrire display: flex; sur chaque a organiserait le contenu de chaque lien, pas les trois li entre eux. Pour placer les éléments de la liste, nous devons agir sur la liste.

Si le menu ne se dispose pas comme prévu, vérifiez d’abord la classe du ul et sa règle. Ne compensez pas en ajoutant de grandes marges sur les liens.

5. Conserver la navigation native

nav reste une zone de navigation ; ul reste une liste ; les a avec href restent des liens activables au clavier. Nous n’ajoutons ni boutons factices ni gestion JavaScript du menu.

Testez Accueil, À propos et Contact dans les deux sens. La mise en page ne doit pas changer leur ordre de lecture. La prochaine leçon espacera cette même liste et expliquera les deux axes.

Référence technique, pour approfondir

W3C — Modèle de mise en page Flexbox

Exemple commenté

Le nav des trois pages contient désormais :

<nav>
    <ul class="navigation-principale">
        <li><a href="index.html">Accueil</a></li>
        <li><a href="apropos.html">À propos</a></li>
        <li><a href="contact.html">Contact</a></li>
    </ul>
</nav>



Son contenu vient du cours HTML. Seule la classe du ul a été ajoutée.

Exercice à réaliser

Étape 1

Dans chaque page, ajoutez navigation-principale au ul du nav, pas aux listes du contenu.

Étape 2

Ajoutez la règle .navigation-principale { display: flex; } à styles.css.

Étape 3

Enregistrez puis testez la navigation entre les trois pages. Le nom et l’ordre des liens restent identiques.

Étape 4

Expliquez pourquoi les li sont les éléments flexibles et pourquoi les a ne sont pas les enfants directs du conteneur.

Correction et résultat attendu

.navigation-principale {
    display: flex;
}



Le ul portant cette classe organise ses li directs avec Flexbox. Les trois pages partagent ce réglage. Les autres règles de styles.css restent intactes.

À retenir

Flexbox est activé sur le parent qui doit organiser ses enfants directs. Ici : le ul est le conteneur, les li sont les éléments flexibles. Le menu reste celui du cours HTML.

Seuil de réussite, en pourcentage : 100 %. QCM obligatoire pour terminer le cours.

Sommaire du cours

Découvrir CSS et écrire ses premières règles

  1. Comprendre CSS et créer sa première feuille de style
  2. Cibler les éléments avec les sélecteurs CSS
  3. Ajouter plusieurs déclarations dans une règle CSS

Mettre en forme le texte et améliorer sa lisibilité

  1. Améliorer la lisibilité du texte avec les propriétés typographiques
  2. Choisir les couleurs et comprendre le contraste
  3. Construire une typographie cohérente et accessible

Comprendre les espacements et le modèle de boîte CSS

  1. Comprendre les espacements avec margin et padding
  2. Comprendre le modèle de boîte avec les bordures
  3. Maîtriser la largeur du site et de son image

Comprendre l’héritage, la cascade et la priorité des règles CSS

  1. Comprendre les valeurs héritées dans le site
  2. Comprendre la cascade sur les paragraphes d’introduction
  3. Comparer les sélecteurs sans dérégler les introductions

Organiser la disposition des éléments avec Flexbox

  1. Transformer la navigation commune en conteneur Flexbox
  2. Espacer et aligner les liens du menu
  3. Laisser la navigation revenir sur plusieurs lignes

Construire des mises en page avec CSS Grid

  1. Disposer les deux notes de progression avec CSS Grid
  2. Adapter les colonnes des notes sans minimum rigide
  3. Intégrer Grid et Flexbox sans modifier le reste du site

Adapter le petit site aux différentes tailles d’écran

  1. Écrire une première media query pour la navigation
  2. Partir de la petite largeur avec min-width
  3. Vérifier le reflow du tableau, de l’image et du formulaire

Finaliser les trois pages et vérifier leur accessibilité

  1. Rendre les liens et le focus faciles à repérer
  2. Finaliser le formulaire et ranger la feuille CSS
  3. Vérifier et terminer le site HTML et CSS

Adapter le petit site aux différentes tailles d’écran

  1. Découvrir les media queries et adapter la mise en page
  2. Finaliser l’adaptation du site et conclure le cours CSS