La propriété flex-direction
indique la façon dont les éléments flexibles sont placés dans un conteneur flexible : elle définit l'axe principal et la direction des éléments (normale ou inversée).
On notera que les valeurs row
et row-reverse
sont impactées par la direction du conteneur. Si dir
vaut ltr
, row
représente l'axe horizontal allant de la gauche vers la droite et row-reverse
représente le même axe allant de la droite vers la gauche. Si dir
vaut rtl
, row
correspondra à l'axe horizontal orienté de la droite vers la gauche et row-reverse
de la gauche vers la droite.
Valeur initiale | row |
---|---|
Applicabilité | conteneurs flexibles |
Héritée | non |
Média | visuel |
Valeur calculée | comme spécifié |
Type d'animation | discrète |
Ordre canonique | l'ordre unique et non-ambigu défini par la grammaire formelle |
Pour plus d'informations, voir la page Utiliser les boîtes flexibles (flexbox) CSS.
Syntaxe
/* La direction suit une ligne */ flex-direction: row; /* Semblable à <row> mais dans */ /* la direction opposée */ flex-direction: row-reverse; /* Les lignes de texte sont */ /* empilées */ flex-direction: column; /* Semblable à <column> mais dans */ /* la direction opposée */ flex-direction: column-reverse; /* Valeurs globales */ flex-direction: inherit; flex-direction: initial; flex-direction: unset;
Valeurs
row
- L'axe principal du conteneur flexible suit la direction du texte. Les points main-start et main-end vont dans la même direction que le contenu.
row-reverse
- L'axe principal du conteneur flexible suit la direction du texte. Les points main-start et main-end vont dans la direction opposée au contenu.
column
- L'axe principal du conteneur flexible suit l'axe de bloc (perpendiculaire à la direction du texte). Les points main-start et main-end correspondent aux points before et after de
writing-mode
. column-reverse
- Se comporte comme
column
mais main-start et main-end sont échangés.
Syntaxe formelle
row | row-reverse | column | column-reverse
Exemples
HTML
<h4>Un exemple avec column-reverse</h4> <div id="content"> <div class="box" style="background-color:red;">A</div> <div class="box" style="background-color:lightblue;">B</div> <div class="box" style="background-color:yellow;">C</div> </div> <h4>Un exemple avec row-reverse</h4> <div id="content1"> <div class="box" style="background-color:red;">A</div> <div class="box" style="background-color:lightblue;">B</div> <div class="box" style="background-color:yellow;">C</div> </div>
CSS
#content { width: 200px; height: 200px; border: 1px solid #c3c3c3; display: -webkit-flex; -webkit-flex-direction: column-reverse; display: flex; flex-direction: column-reverse; } #content1 { width: 200px; height: 200px; border: 1px solid #c3c3c3; display: -webkit-flex; -webkit-flex-direction: row-reverse; display: flex; flex-direction: row-reverse; } .box { width: 50px; height: 50px; }
Résultat
Spécifications
Spécification | État | Commentaires |
---|---|---|
CSS Flexible Box Layout Module La définition de 'flex-direction' dans cette spécification. |
Candidat au statut de recommandation | Définition initiale. |
Compatibilité des navigateurs
Fonctionnalité | Firefox (Gecko) | Chrome | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | 18.0 (18.0)[1] 20.0 (20.0) 28.0 (28.0)[2] |
21.0-webkit |
10 -ms |
12.10 |
7 -webkit |
Fonctionnalité | Firefox Mobile (Gecko) | Android | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Support simple | ? | ? | Pas de support | 12.10 |
Pas de support |
[1] Pour activer les boîtes flexibles sur Firefox 18 et 19, il est nécessaire d'activer la préférence layout.css.flexbox.enabled
avec true
dans about:config
.
[2] Les boîtes flexibles sur plusieurs lignes sont prises en charge depuis Firefox 28.
En plus de la version non préfixée, Gecko 48.0 (Firefox 48.0 / Thunderbird 48.0 / SeaMonkey 2.45) prend en charge la version préfixée par -webkit
à des fins de compatibilité web grâce à la préférence layout.css.prefixes.webkit
dont la valeur par défaut vaut false
. Depuis Gecko 49.0 (Firefox 49.0 / Thunderbird 49.0 / SeaMonkey 2.46), cette valeur par défaut est passée à true
.