Ordre d’Apparition des Flex-items en Flexbox : l’attribut order
est un outil puissant pour contrôler l’ordre d’affichage des éléments dans un conteneur Flexbox. Apprendre à utiliser correctement l’attribut order
peut améliorer la flexibilité et la conception de vos mises en page web. Apprenons comment il fonctionne et comment l’implémenter grâce à des exemples concrets de code.
Introduction à l’Attribut order
en Flexbox
L’attribut order
en CSS permet de contrôler l’ordre de présentation des items dans une mise en page Flexbox, indépendamment de leur ordre d’apparition dans le code source HTML. Cela signifie que vous pouvez organiser les éléments visuellement sans avoir à réorganiser le code HTML initial.
Comment Utiliser l’attribut order
en CSS
Pour utiliser l’attribut order
, il suffit de l’appliquer à un ou plusieurs éléments enfants d’un conteneur Flexbox. Par défaut, tous les éléments ont une valeur order: 0
. En attribuant des valeurs positives ou négatives, vous contrôlez leurs positions. Voici un exemple simple :
.container {
display: flex;
}
.item-1 {
order: 2;
}
.item-2 {
order: 1;
}
.item-3 {
order: 3;
}
Dans cet exemple, bien que .item-1
apparaisse en premier dans le code HTML, il sera affiché en second dans le conteneur Flexbox grâce à l’attribut order
.
Exemples Pratiques pour Manipuler l’Ordre des Items
Réorganiser des Boxes Simples
Voyons un exemple plus concret où nous réorganisons trois boîtes. Voici le HTML et le CSS nécessaires :
<div class="container">
<div class="item item-1">Item 1</div>
<div class="item item-2">Item 2</div>
<div class="item item-3">Item 3</div>
</div>
.container {
display: flex;
}
.item {
padding: 20px;
margin: 10px;
background-color: #f0f0f0;
border: 1px solid #ccc;
}
.item-1 {
order: 3;
}
.item-2 {
order: 1;
}
.item-3 {
order: 2;
}
Avec ce CSS, Item 2
apparaîtra en premier, suivi de Item 3
, puis de Item 1
.
Créer une Navigation avec Flexbox
Un autre cas d’utilisation pertinent est la création d’une barre de navigation où certains éléments doivent être réorganisés selon les besoins. Voici comment :
<nav class="navbar">
<a href="#" class="nav-item home">Home</a>
<a href="#" class="nav-item about">About</a>
<a href="#" class="nav-item contact">Contact</a>
<a href="#" class="nav-item blog">Blog</a>
</nav>
.navbar {
display: flex;
background-color: #333;
padding: 10px;
}
.nav-item {
color: #fff;
padding: 10px;
text-decoration: none;
}
.home {
order: 1;
}
.about {
order: 2;
}
.contact {
order: 4;
}
.blog {
order: 3;
}
Cette configuration de CSS positionne le lien “Contact” après “Blog”, tout en gardant les autres éléments dans un ordre souhaité.
Utiliser Flexbox avec des Frameworks CSS
Si vous utilisez des frameworks CSS populaires comme Bootstrap ou TailwindCSS, vous pouvez tirer parti des utilitaires intégrés pour contrôler l’ordre des éléments. Voici un exemple avec Bootstrap :
<div class="d-flex">
<div class="order-3 p-2">First flex item</div>
<div class="order-1 p-2">Second flex item</div>
<div class="order-2 p-2">Third flex item</div>
</div>
Bootstrap offre des classes utilitaires comme order-1
, order-2
, etc., pour faciliter le contrôle de l’ordre des items.
Exemples Avancés d’Utilisation de l’Attribut order
Réagencement Dynamique basé sur la Réactivité
Vous pouvez également utiliser des media queries pour réorganiser les items en fonction de la taille de l’écran. Par exemple :
.container {
display: flex;
}
.item {
padding: 20px;
margin: 10px;
background-color: #f0f0f0;
border: 1px solid #ccc;
}
/* Ordre par défaut */
.item-1 {
order: 1;
}
.item-2 {
order: 2;
}
.item-3 {
order: 3;
}
/* Ordre pour les écrans de moins de 600px */
@media only screen and (max-width: 600px) {
.item-1 {
order: 3;
}
.item-2 {
order: 1;
}
.item-3 {
order: 2;
}
}
Ici, les éléments seront réorganisés différemment sur les petits écrans pour une meilleure expérience utilisateur.
Synchroniser l’ordre avec JavaScript
Il est également possible de combiner Flexbox order
avec JavaScript pour réorganiser dynamiquement les éléments. Voici un exemple simple utilisant JavaScript :
<div class="container">
<div class="item item-1">Item 1</div>
<div class="item item-2">Item 2</div>
<div class="item item-3">Item 3</div>
</div>
<button onclick="reorderItems()">Réorganiser</button>
function reorderItems() {
const item1 = document.querySelector('.item-1');
const item2 = document.querySelector('.item-2');
const item3 = document.querySelector('.item-3');
item1.style.order = 2;
item2.style.order = 3;
item3.style.order = 1;
}
En cliquant sur le bouton, l’ordre des éléments sera réorganisé conformément aux valeurs définies avec JavaScript.
Conclusion
L’attribut order
en Flexbox est un atout incontournable pour structurer visuellement vos éléments sans changer l’ordre de votre code HTML. Que ce soit pour la création de barres de navigation, la réorganisation d’éléments sur différentes tailles d’écran, ou la synchronisation dynamique avec JavaScript, l’attribut order
offre une flexibilité considérable dans la mise en page.

Pour une compréhension approfondie du HTML et du CSS, consultez nos autres ressources : fonctionnement-navigateur-web-html-guide, bases-langage-html-apprendre-fondamentaux, syntaxe-css-bases-connaitre, ajouter-commentaires-css-guide-pratique, et calcul-taille-element-css-box-sizing.
Pour en savoir plus sur le Flexbox, vous pouvez également consulter le site de