Flexbox — Flex-basis
Introduction
flex-basis définit la taille de départ d'un élément flex sur l'axe principal. Par défaut, la valeur est auto, ce qui signifie que l'élément se base sur sa largeur/hauteur intrinsèque ou sur les propriétés width et height.
Contrairement à width, la base reste active même si l'on change la direction de l'axe: en row, la valeur contrôle la largeur; en column, elle contrôle la hauteur.
Définir la taille de base
flex-basis agit comme un point de départ. Une fois la base posée, Flexbox distribue ensuite l'espace restant (flex-grow) ou le manque d'espace (flex-shrink).
Exemple interactif
<div class="container">Navigation
<div class="el1"></div>flex-basis:
Article
<div class="el2"></div>flex-basis:
Sidebar
<div class="el3"></div>flex-basis:
</div>.container { display: flex; gap: 1rem; } .el1 { flex-basis: 140px; } .el2 { flex-basis: auto; } .el3 { flex-basis: 200px; }
flex-basis fixe la taille initiale sur l'axe principal avant que flex-grow ou flex-shrink ne redistribuent l'espace.Propriété flex
La propriété abrégée flex combine flex-grow, flex-shrink et flex-basis (flex: 1 0 200px). Quand on écrit flex: 1, on obtient en réalité flex: 1 1 0.
Exercice
Zone éditable
<style> .container { display: flex; gap: 1rem; min-height: 220px; } .panel { background-color: #f0f0f0; border-radius: 8px; padding: 1rem; } .content { flex: 1; } .sidebar { /* 🦊 Réserver 220px pour ce bloc via flex-basis */ } .credits { /* 🦊 Limiter ce bloc à 120px */ } </style> <div class="container"> <div class="panel sidebar">Navigation</div> <div class="panel content">Contenu principal</div> <div class="panel credits">Crédits</div> </div>