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.

Adapter les colonnes des notes sans minimum rigide

Objectif de la leçon

Comprendre repeat, minmax et auto-fit sur les deux notes, puis utiliser min pour éviter qu’une largeur minimale fixe dépasse un conteneur très étroit.

Explications

Ne pas imposer deux colonnes sur toutes les largeurs

La grille contient toujours les mêmes deux notes. Nous allons laisser chacune disposer de suffisamment d’espace, quitte à les empiler lorsque la fenêtre se rétrécit.

Le HTML ne change pas. Toutes les expériences concernent la valeur de grid-template-columns dans .grille-notes. Remplacez cette valeur au même endroit à chaque étape.

1. Repeat évite une répétition

repeat(2, 1fr) répète deux fois le modèle 1fr. Il est équivalent ici à 1fr 1fr. La virgule sépare le nombre de répétitions du modèle répété ; les parenthèses contiennent ces arguments.

Cette écriture simplifie le code mais conserve exactement deux colonnes. Elle ne les rend pas encore adaptables.

2. Minmax définit les limites d’une piste

minmax(16rem, 1fr) donne à une colonne un minimum de 16rem et un maximum flexible exprimé en fr. 1fr n’est pas une largeur fixe ; la piste peut grandir en partageant l’espace disponible.

Le minimum de 16rem est une contrainte réelle, pas un simple souhait que Grid pourrait ignorer. Avec repeat(2, minmax(16rem, 1fr)), deux colonnes et le gap nécessitent au moins 33rem. Essayez brièvement cette valeur pour comprendre la limite.

3. Auto-fit adapte le nombre de pistes

Remplacez le nombre 2 par auto-fit : repeat(auto-fit, minmax(16rem, 1fr)). Le navigateur crée autant de colonnes que la place le permet, puis les pistes restées vides sont repliées. Nos deux notes peuvent donc partager la largeur disponible sans laisser des colonnes vides à côté.

Lorsque deux colonnes ne tiennent plus, les notes passent sur deux lignes. L’ordre Ma première page complète puis Mon formulaire de contact ne change pas.

4. Corriger aussi le cas inférieur à 16rem

Même avec une seule colonne, un minimum fixe de 16rem peut dépasser un conteneur plus étroit. Auto-fit ne supprime pas cette contrainte. Nous découvrons donc min(), une fonction qui retient la plus petite des valeurs comparées.

min(16rem, 100%) vaut 16rem lorsque le conteneur est assez large, et 100% de ce conteneur s’il est plus étroit. Placée comme minimum de minmax, elle permet à la piste de rétrécir davantage sans conserver un minimum supérieur au conteneur.

L’écriture finale est :

grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));



Lisez de l’intérieur vers l’extérieur : minimum plafonné à la largeur du conteneur ; piste flexible ; répétition automatique. Chaque appel a sa fermeture : min se ferme après 100%, puis minmax et repeat se ferment après 1fr.

5. Tester les deux notes, pas un nombre inventé de cartes

Sur une grande largeur, nos deux articles peuvent être côte à côte. Sur une petite largeur, ils peuvent être empilés. Avec seulement deux articles, nous n’attendons jamais quatre cartes.

Réduisez encore la fenêtre et augmentez le texte. La piste peut rétrécir sous 16rem ; un contenu intérieur qui ne peut pas revenir à la ligne pourrait cependant encore déborder. Le chapitre responsive apprendra à vérifier le contenu réel, pas seulement la formule de colonnes.

À la fin, conservez la formule avec min, et non l’étape intermédiaire à minimum fixe.

Référence technique, pour approfondir

W3C — Répétition automatique des pistes Grid
W3C — Fonctions de comparaison min et max

Exemple commenté

Évolution de la même propriété :

grid-template-columns: repeat(2, 1fr);



Puis, après compréhension des limites :

.grille-notes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
    gap: 1rem;
}



Les deux articles restent ceux de la section Mes notes de progression.

Exercice à réaliser

Étape 1

Remplacez 1fr 1fr par repeat(2, 1fr). Vérifiez que la grille est équivalente.

Étape 2

Testez repeat(2, minmax(16rem, 1fr)). Calculez la largeur minimale nécessaire avec le gap de 1rem.

Étape 3

Testez repeat(auto-fit, minmax(16rem, 1fr)), puis réduisez la fenêtre pour observer les deux notes sur deux lignes.

Étape 4

Remplacez le minimum fixe par min(16rem, 100%) pour obtenir la formule finale de la leçon.

Étape 5

Testez une largeur très petite et le zoom. Expliquez pourquoi auto-fit seul n’aurait pas supprimé un minimum trop grand.

Correction et résultat attendu

.grille-notes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
    gap: 1rem;
}



Deux pistes de 16rem et un intervalle de 1rem nécessitent 33rem. Auto-fit adapte le nombre de pistes ; min(16rem, 100%) empêche le minimum de piste de dépasser son conteneur dans notre disposition. Le contenu doit néanmoins être testé : cette formule n’est pas une garantie universelle contre tous les débordements.

À retenir

Repeat répète ; minmax définit des limites ; auto-fit adapte les pistes et replie celles qui restent vides. Min rend le minimum lui-même adaptable. Les deux notes peuvent changer de disposition sans changer d’ordre.

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