Le display Flex en CSS

Le 'Flex' facilite le placement des objets, qui se fait de manière plus intuitive et plus facile. C'est la plus récente des propriétés CSS du module display.

On lui distingue 4 propriétés possibles :

Le module flexbox est reconnu par la plupart des navigateurs (en cas de doute, la vérification est possible grâce à ce site.

Distribution et axe principal

Distribution (flex-direction)

La distribution permet de gérer l'affichage horizontal ou vertical des éléments. Elle peut être définie par ces propriétés :

Axe principal (flex-wrap)

Le flex-wrap permet quant à lui de définir si des éléments sont sur une seule ligne ou sur une colonne selon l'axe principal.

Cliquez sur les boutons pour voir la magie de flex-direction et de wrap
1
2
3
4
5
    #exempleDistribution{
        height : auto;
        overflow : hidden;
        border : 0.5vw solid grey;
        flex-direction : 
        flex-wrap :  
    }

Il existe aussi une propriété raccourcie : flex-flow, qui a la particularité de regrouper flex-direction et flex-wrap.
Exemple : flex-flow: row-reverse wrap;
Dans ce cas, on place d'abord la propriété gérant la flex-direction puis celle gérant le flex-wrap.

Alignements:

Deux propriétés permettent de gérer l'alignement et le centrage avec deux axes: l'axe principal (qui est géré via la propriété justify-content) et l'axe secondaire (qui est géré par align-items).

Justify-content (axe principal)

L'axe de lecture principal est défini par ces propriétés :

Cliquez sur le bouton pour voir la magie de justify-content
1
2
3
4
5
    #exempleJustify {
        width :  50vw;
        border :  0.5vw solid grey;
        justify-content : 
    }
              

Align-items (axe secondaire)

La propriété align-items permet de définir la façon dont les éléments sont disposés sur l'axe transversal.

Cliquez sur le bouton pour voir la magie de align-items
1
2
3
4
5
    #exempleAlign  {
        width :  30vw;
        height :  40vh;
        border :  0.5vw solid grey;
        flex-direction :  column;
        align-items : : 
    }
            

Point sur la propriété Align-self : elle permet de supplanter la valeur d'align-items pour un ou plusieurs éléments spécifiques. Align-self utilise les mêmes valeurs qu'align-items.

Ordonnancement

L'ordonnancement permet de réordonner les éléments de façon indépendante avec la propriété "order".

Celle-ci s'applique aux flex-items avec des valeurs numériques.
La propriété order s'écrit comme suit : order: (nombre entier)

Cliquez sur les boutons pour voir la magie de order
1
2
3
4
5
    #un{order : 1;}
    #deux{order : 2;}
    #trois{order : 3;}
    #quatre{order : 4;}
    #cinq{order : 5;}

Flexibilité

La flexibilité est le fondement même du display Flex et cela se fait grâce à la propriété flex.

La propriété flex est un raccourci de trois propriétés :

Ressources

Et pour aller plus loin...