Flexbox CSS3 a été conçu pour étendre le modèle de boîte classique en CSS et ses dispositions de type "block" ou "inline" en introduisant un nouveau modèle de boîte distinct, appelé "Modèle de boîte flexible"
Par défaut, les balises DIV se suivent les unes à la suite des autres (balise de type "block")
<!DOCTYPE html> <html> <head> <style> #conteneur { border:thin solid #000 ; } .element { width : 200px ; height: 50px ; margin:10px; border:medium solid #000 ; padding:5px; } .element:nth-child(1) { background-color:#00F ; } .element:nth-child(2) { background-color:#FFF ; } .element:nth-child(3) { background-color:#F00 ; } </style> </head> <body> <div id="conteneur"> <div class="element">Elément 1</div> <div class="element">Elément 2</div> <div class="element">Elément 3</div> </div> </body> </html>
#conteneur { display: flex ; }
Flexbox permet de positionner les éléments dans le sens que l'on veut (horizontalement, verticalement ou les inverser). La propriété flex-direction peut prendre les valeurs suivantes :
#conteneur { display: flex ; flex-direction : column-reserve ; }
#conteneur { display: flex ; flex-direction : row-reserve ; }
Les blocs sont disposés soit horizontalement (par défaut), soit verticalement : C'est l'axe principal.
Il y a aussi un axe secondaire : si les blocs sont organisés horizontalement, l'axe secondaire est l'axe vertical et inversement.
Pour changer l'alignement, on utilise "justify-content" avec les valeurs possibles :
#conteneur { display: flex ; justify-content: space-around; }
#conteneur { display: flex ; justify-content: space-between; }
#conteneur { display: flex ; justify-content: flex-end; }
#conteneur { display: flex ; justify-content: center; }
Pour en savoir plus :