LEÇON

10. Espacement, taille et position : le modèle de boîte

Les boîtes sont en place ; reste à décider ce qui les sépare, quelle place elles prennent et où elles se posent. Ce chapitre explique le modèle de boîte — la façon dont tout navigateur mesure un élément — puis parcourt trois sections de l’onglet Style qui en découlent : Espacement, Taille et Position. C’est le chapitre qui fait passer une page « qui marche » à une page aérée et solide.

Les boîtes sont en place ; reste à décider ce qui les sépare, quelle place elles prennent et où elles se posent. Ce chapitre explique le modèle de boîte — la façon dont tout navigateur mesure un élément — puis parcourt trois sections de l’onglet Style qui en découlent : Espacement, Taille et Position. C’est le chapitre qui fait passer une page « qui marche » à une page aérée et solide.

En bref

Public
Toute personne qui a lu le chapitre 09 et dont les pages restent « tassées » ou « bancales » sans savoir pourquoi.
Enjeu
Choisir sans hésiter entre marge interne, marge externe et écart ; ne plus jamais figer une hauteur ; placer un élément décoratif sans casser le mobile.
Idée clé
L’espace appartient toujours à une boîte : dedans (marge interne), autour (marge externe) ou entre (écart).
Prérequis
Chapitres 03 et 09.
Lecture
Environ 18 minutes (+ 25 minutes d’exercice).

10.1 — Le modèle de boîte : quatre couches

Pour un navigateur, tout élément d’une page — un titre, une image, un conteneur — est un rectangle composé de quatre couches emboîtées. Au centre, le contenu : le texte ou l’image. Autour, la marge interne (padding), un coussin d’espace qui appartient à la boîte. Puis la bordure (border), un trait facultatif. Enfin, la marge externe (margin), un espace qui repousse les voisins. Le CSS appelle cet ensemble le modèle de boîte (box model), et Elementor n’invente rien : chacun de ses réglages d’espacement correspond à l’une de ces couches.

Contenu texte, image, enfants marge interne (padding) marge externe (margin) marge externe (margin) Bordure (border) trait facultatif, entre les deux marges Règle du fond L’arrière-plan colore contenu + marge interne, jamais la marge externe. Une boîte, quatre couches
Figure 10.1 — Le modèle de boîte : contenu, marge interne, bordure, marge externe. La couleur de fond s’arrête à la bordure.

Une conséquence pratique se lit sur la figure : l’arrière-plan d’une boîte colore le contenu et la marge interne, mais jamais la marge externe. Une carte à fond blanc avec 24 px de marge interne montre donc 24 px de blanc autour de son texte ; la même carte avec 24 px de marge externe reste collée à son texte et laisse simplement un vide autour d’elle. C’est le premier critère de choix : si l’espace doit être coloré comme la boîte, c’est du padding.

Définition

Marge interne (padding) — l’espace entre le bord d’une boîte et son contenu ; il fait partie de la boîte et prend sa couleur de fond. Marge externe (margin) — l’espace entre une boîte et ses voisines ; il est transparent et n’appartient à personne. Écart (gap) — l’espace qu’un conteneur Flexbox ou Grille impose entre ses enfants (chapitre 09) ; c’est la marge externe « moderne », sans effet de bord.

10.2 — Espacement : lier et délier les quatre côtés

Dans l’onglet Style d’un élément atomique, la section Espacement (Spacing) contient deux groupes de champs, Padding et Margin, chacun avec quatre valeurs : haut, droite, bas, gauche. Une petite icône de chaîne, à côté du groupe, lie les quatre côtés : tant qu’elle est active, une valeur saisie dans un champ se recopie dans les trois autres. Cliquez dessus pour délier et régler chaque côté séparément — c’est ce que l’on fait pour une section, où l’on veut 80 px en haut et en bas mais seulement 24 px sur les côtés.

À savoir

L’interface française d’Elementor conserve souvent le mot anglais « Padding » pour la marge interne, et traduit « Margin » par « Marge ». Ne vous laissez pas troubler : Padding = dedans, Marge = autour. Dans les widgets classiques (chapitre 11), ces mêmes réglages se trouvent dans l’onglet Avancé, sous les libellés « Marge » et « Padding ».

Trois habitudes règlent 90 % des cas. Sur une section, du padding haut et bas (80 px sur ordinateur est une valeur courante) et un padding latéral d’au moins 20 à 24 px, pour que le texte ne touche jamais le bord d’un écran de téléphone. Sur une carte, du padding uniforme (24 à 32 px). Entre les cartes, jamais de marge : l’Écart du parent. Il reste peu de place pour la marge externe ; on s’en sert pour décoller un titre de son paragraphe (16 px en bas d’un titre, par exemple) ou pour un décalage ponctuel. Les valeurs négatives sont acceptées et permettent de faire chevaucher deux boîtes, mais elles se paient toujours sur mobile ; évitez-les tant que vous n’en avez pas un besoin précis.

10.3 — Les unités : dans quoi mesure-t-on ?

Chaque champ de taille ou d’espacement propose une unité, choisie dans un petit menu à droite du champ. Le débutant travaille en pixels, ce qui est raisonnable pour les espacements. Mais quelques autres unités valent la peine d’être comprises, parce qu’elles rendent la page plus souple.

UnitéCe qu’elle mesureCas d’usage conseilléÀ éviter pour
pxLe pixel CSS, unité fixe et prévisible.Padding, écart, bordures, rayons de coins, largeur maximale d’un contenu (1140).La largeur d’une boîte qui doit s’adapter à l’écran.
%Une part de la dimension du parent.Largeur d’un enfant dans une rangée (50 %, 100 %).Les hauteurs (le pourcentage d’une hauteur non définie ne vaut rien) ; le padding, dont le pourcentage se calcule sur la largeur.
emUn multiple de la taille de police de l’élément lui-même.Padding d’un bouton (0,75em 1,5em), pour qu’il grossisse avec son texte.Les emboîtements profonds, où les em se multiplient et surprennent.
remUn multiple de la taille de police de base du site (16 px par défaut dans les navigateurs, donc 1 rem = 16 px, 5 rem = 80 px).Tailles de texte (chapitre 13), largeur maximale d’un paragraphe, espacements verticaux si l’on veut qu’ils suivent la police.Rien de particulier ; c’est l’unité « sûre » pour tout ce qui touche au texte.
vwUn centième de la largeur de la fenêtre du navigateur.Rarement ; parfois un titre géant de bandeau (6vw).Le texte courant (illisible sur mobile, énorme sur grand écran) et les largeurs (crée un défilement horizontal).
vhUn centième de la hauteur de la fenêtre.Hauteur minimale d’un bandeau d’accueil (60vh à 90vh).Une hauteur fixe : sur téléphone, la barre d’adresse fait varier la hauteur réelle.
auto« Laisse le navigateur décider. »Largeur d’un bouton (à son contenu) ; marges gauche et droite pour centrer une boîte de largeur limitée.—
Bonne pratique

Une règle simple pour tout le support : px pour les espacements et les bordures, rem pour les tailles de texte, % pour les largeurs des enfants d’une rangée, vh uniquement pour la hauteur minimale d’un bandeau. Avec ces quatre unités, vous couvrez un site vitrine entier sans mauvaise surprise.

10.4 — Taille : largeur, hauteur, minimum et maximum

La section Taille (Size) regroupe la largeur (Width), la hauteur (Height), leurs bornes minimale et maximale (Min / Max) et, en fin de section, le Débordement (Overflow). Par défaut, un conteneur prend toute la largeur de son parent et exactement la hauteur de son contenu ; un bouton ou une image prennent leur taille naturelle. La plupart du temps, vous ne toucherez qu’à deux champs : la largeur d’un enfant dans une rangée (en pourcentage) et la largeur maximale d’un contenu (1140 px pour une section, 720 px environ pour un paragraphe seul, afin de garder des lignes lisibles — le chapitre 13 y revient).

Ne fixez jamais une hauteur sur une boîte de texte

C’est l’erreur la plus fréquente, et la plus coûteuse. Sur votre écran, une carte de 220 px de haut contient parfaitement ses trois lignes de texte. Mais sur un téléphone, ces trois lignes en deviennent six ; le texte déborde alors de la carte et se superpose à l’élément suivant. Un texte plus long, un visiteur qui agrandit la police, une traduction : tout fait varier la hauteur d’un texte. La solution est toujours la même : laisser la hauteur libre, et si l’on veut une hauteur « au moins égale à », utiliser la hauteur minimale.

Hauteur : 160 px (fixe) le texte sort de la carte Hauteur min : 160 px (souple) 160 px minimum la carte grandit avec le texte
Figure 10.2 — Même contenu sur un écran étroit : la hauteur fixe fait déborder le texte ; la hauteur minimale laisse la carte grandir.

Deux autres valeurs méritent d’être connues. La largeur fit-content donne à une boîte exactement la largeur de son contenu, ni plus ni moins : c’est ce que l’on veut pour un badge ou un bouton isolé dans un conteneur en Colonne, qui sinon s’étirerait sur toute la largeur ; si votre liste d’unités ne la propose pas, elle se saisit comme valeur personnalisée. Le Débordement, enfin, décide de ce qui arrive quand un contenu dépasse : Visible (par défaut, il dépasse), Hidden (il est coupé — indispensable pour qu’une image respecte les coins arrondis de sa carte) ou Auto (une barre de défilement apparaît — presque toujours à éviter dans une page vitrine).

10.5 — Position : de statique à collante

La section Position répond à une question que le débutant ne se pose jamais tant que tout va bien : par rapport à quoi une boîte se place-t-elle ? Par défaut, la réponse est « dans le flux » : chaque boîte vient après la précédente, comme des mots dans une phrase. Les autres valeurs de position sortent une boîte de ce flux, en tout ou partie.

  • Statique (Static) — la valeur par défaut. La boîte suit le flux et ignore les champs de décalage.
  • Relative — la boîte garde sa place dans le flux, mais peut être décalée (haut, droite, bas, gauche) par rapport à cette place. Surtout, elle devient le point de référence de ses enfants en position absolue : c’est son usage principal.
  • Absolue (Absolute) — la boîte est retirée du flux ; les voisines se comportent comme si elle n’existait pas. Elle se place aux coordonnées indiquées, mesurées depuis le parent le plus proche qui a une position autre que statique. C’est la position d’un badge sur une photo, d’une étiquette « Nouveau » sur une carte.
  • Fixe (Fixed) — comme Absolue, mais mesurée depuis la fenêtre du navigateur : la boîte ne bouge pas quand on fait défiler. Usage : un bouton « Appeler » flottant en bas d’écran.
  • Collante (Sticky) — la boîte suit le flux, puis, quand le défilement l’amène à la distance indiquée du bord, elle s’y accroche et reste visible. C’est ainsi qu’un en-tête reste à l’écran (chapitre 24). L’Éditeur atomique permet de coller sur chacun des quatre côtés.

Le champ Z-index complète la section : quand deux boîtes positionnées se chevauchent, celle dont le z-index est le plus grand passe devant. Des valeurs de 1 à 10 suffisent largement ; réservez les grands nombres aux fenêtres surgissantes. Notez que la Structure signale d’un marqueur les éléments en position absolue (Centre d’aide, page « Elementor Top Bar ») : un moyen rapide de les retrouver quand un élément « a disparu » de la toile.

En-tête — Position : Collante (Sticky) Image (parent : Relative) Depuis 2009 Texte : Statique Badge : Absolue Haut 16 px, Gauche 16 px, Z-index 2, mesuré depuis le parent en Relative. Collante suit le flux, puis reste accrochée au bord haut. Statique chaque boîte vient après la précédente : c’est le flux normal, par défaut.
Figure 10.3 — Trois positions sur une même page : l’en-tête collant, le badge absolu sur son parent relatif, le texte statique dans le flux.

10.6 — Position absolue et responsive : prudence

Un élément en position absolue ne pousse rien et n’est poussé par rien. Sur un écran large, cela permet des compositions élégantes ; sur un téléphone, où tout s’empile et s’allonge, le même élément vient recouvrir un texte ou sortir de l’écran. La règle du support est donc stricte : la position absolue est réservée aux éléments décoratifs et petits — un badge, une icône, une forme d’arrière-plan — jamais à un bloc de texte ni à une image de contenu. Le parent est toujours en Relative, les coordonnées sont petites (quelques dizaines de pixels), et l’on vérifie chaque point de rupture (chapitre 12). Pour tout ce qui est une vraie mise en page — deux colonnes, une image à côté d’un texte —, ce sont le Flexbox et la Grille qui font le travail, jamais des coordonnées.

Piège classique

Positionner un titre « à l’œil » en absolu pour qu’il se superpose à une photo, puis découvrir sur téléphone qu’il chevauche le bouton ou déborde à droite. Un texte sur image se construit autrement : l’image en arrière-plan du conteneur (chapitre 14), le titre dans le flux normal, centré par le Flexbox. Le texte reste alors lisible à toutes les largeurs.

  1. Sélectionnez le parent de l’image du bandeau. Sur la page « Accueil », dans la Structure (Ctrl+I, Cmd+I sur Mac), cliquez sur le Bloc Div qui contient la photo. Dans Style › Position, choisissez Relative. Rien ne bouge : c’est normal, vous venez seulement de désigner le point de référence.
  2. Créez le badge. Déposez un Bloc Div dans ce même parent, après l’image ; renommez-le « Badge 2009 ». Placez-y un Paragraphe avec le texte « Depuis 2009 ».
  3. Positionnez-le. Sur « Badge 2009 », Style › Position : Absolue, Haut 16 px, Gauche 16 px, Z-index 2. Le badge saute dans le coin de l’image.
  4. Dimensionnez-le. Dans Taille, largeur fit-content (ou laissez le Bloc Div en largeur automatique) pour qu’il ne s’étire pas. Dans Espacement, padding lié à 8 px puis délié : 8 haut et bas, 16 gauche et droite.
  5. Habillez-le. Arrière-plan bois chaud #A8663C, texte blanc cassé #FAF7F2 (section Typographie), coins arrondis à 999 px dans Bordure pour obtenir une pilule (le chapitre 17 détaille ces réglages).
  6. Contrôlez en tablette et en mobile (Ctrl+Shift+M). Le badge doit rester dans le coin de l’image, sans toucher au titre. Enregistrez.

Exercice 10.1 — Aérer la page d’accueil 25 min

Objectif : appliquer une grille d’espacement cohérente à toute la page d’accueil de Menuiserie Roche, sans une seule hauteur fixe.

  1. Ouvrez la Structure et listez, sur papier, chaque conteneur « section » de la page (bandeau, prestations, atelier). Pour chacun, réglez le padding : 80 px haut et bas, 24 px gauche et droite (chaîne déliée). Notez que le chapitre 12 ramènera ces valeurs à 40 px sur mobile.
  2. Sur chaque Flexbox « contenu », vérifiez : largeur 100 %, largeur maximale 1140 px, Écart 32 px entre les cartes.
  3. Dans chaque carte de prestation, padding lié à 24 px ; entre le titre H3 et son paragraphe, une marge externe basse de 8 px sur le titre.
  4. Parcourez toutes les boîtes de la page et supprimez toute hauteur fixée en pixels. Si une section doit rester haute (le bandeau), remplacez-la par une hauteur minimale de 70 vh.
  5. Reprenez le pas-à-pas du badge « Depuis 2009 » si ce n’est pas déjà fait, puis allongez volontairement le paragraphe d’une carte à huit lignes : rien ne doit déborder.
  6. Passez en vue mobile et faites défiler toute la page : aucun texte ne doit toucher le bord de l’écran, aucun élément ne doit en sortir.

Résultat attendu : une page d’accueil dont toutes les sections respirent de la même façon (80 px), dont toutes les cartes sont bâties sur le même padding (24 px) et le même écart (32 px), sans aucune hauteur fixe, avec un badge en position absolue qui tient dans le coin de l’image à toutes les largeurs. La Structure ne montre qu’un seul marqueur de position absolue : le badge.

À retenir

  • Toute boîte a quatre couches : contenu, marge interne (padding, colorée par le fond), bordure, marge externe (margin, transparente).
  • Padding pour l’espace dedans, Écart du parent pour l’espace entre, marge externe seulement pour un décalage ponctuel.
  • Unités : px pour les espacements, rem pour le texte, % pour les largeurs d’enfants, vh pour la hauteur minimale d’un bandeau.
  • Ne fixez jamais une hauteur en pixels sur une boîte qui contient du texte ; utilisez la hauteur minimale.
  • La position absolue se mesure depuis un parent relatif et se réserve aux petits éléments décoratifs ; la position collante sert à l’en-tête.
  • Après tout réglage de position, on contrôle la tablette et le mobile avant d’enregistrer.