Flexbox est une manière de mettre en page les éléments en colonnes et ajuster leurs alignements. Les dimensions des éléments s’adaptent (s’étendent) pour remplir un espace supplémentaire ou rétrécissent pour s’adapter à des espaces plus petits.
Exemple basique
Dans une section avec 3 enfants, nous voudrions 3 colonnes:
<section id="intro">
<div>Premiere</div>
<div>Deuxieme</div>
<div>Troisieme</div>
</section>
Dans notre document style.css
, on déclare display:flex;
à notre section
section#intro {
display: flex;
}
Les trois blocs enfants passent en colonnes!
Exemple largeur égale
Dans le premier exemple, chaque colonne prends la largeur de son contenu. Pour qu’elles prennent la même largeur, nous pouvons utiliser flex
dans chaque colonne:
<section id="intro">
<div class="col">Premiere</div>
<div class="col">Deuxieme</div>
<div class="col">Troisieme</div>
</section>
section#intro {
display: flex;
}
.col {
flex: 1;
}
En donnant à flex
la valeur 1, nous disons que chaque colonne a le poids/importance de 1.
Exemple largeur inégale:
Pour obtenir une valeur inégale sur une colonne, il suffit de modifier son flex individuellement (en ajoutant une classe):
<section id="intro">
<div class="col">Premiere</div>
<div class="col large">Deuxieme</div>
<div class="col">Troisieme</div>
</section>
section#intro {
display: flex;
}
.col {
flex: 1;
}
.col.large {
flex: 3;
}
En donnant à la grande colonne la valeur de 3, elle a donc la taille de 3 à 1 par rapport aux autres frères et sœurs.
Note
Pour qu’une colonne s’adapte à son contenu, il faut lui donner une valeur de
flex: 0;
Ressources
Pour plus d’informations sur flexbox, comme toujours, MDN Web Docs
Pour pratiquer le positionnement d’éléments en utilisant Flex, voir la ressource suivante