order
=====

Baseline Widely available
-------------------------

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.

* Learn more
* See full compatibility
* Report feedback
La propriété **`order`** définit l'ordre avec lequel on dessine les éléments d'un conteneur d'éléments flexibles ou d'une grille d'éléments. Les éléments sont appliqués dans l'ordre croissant des valeurs de `order`. Les éléments ayant la même valeur pour `order` seront appliqués dans l'ordre selon lequel ils apparaissent dans le code source du document.

Exemple interactif
------------------

**Note :** `order` est uniquement conçue pour affecter **l'ordre visuel**. Elle ne doit pas être utilisée pour modifier l'ordre logique ou l'ordre de tabulation. **`order`** ne doit pas être utilisée avec les média non visuels comme les informations vocales.

Syntaxe
-------


```css
/\* Valeurs entières (type <integer>) \*/
/\* positives ou négatives \*/
order: 5;
order: -5;

/\* Valeurs globales \*/
order: inherit;
order: initial;
order: unset;
```

### Valeurs

`<integer>`

Un nombre entier (cf. `<integer>`) indiquant l'ordre à appliquer pour l'élément.

Définition formelle
-------------------

|  |  |
| --- | --- |
| Valeur initiale | `0` |
| Applicabilité | Flex items, grid items, and absolutely-positioned flex and grid container children |
| Héritée | non |
| Valeur calculée | comme spécifié |
| Type d'animation | un entier |

Syntaxe formelle
----------------
```

order =   
  [ <'layout-order'> <'reading-order'>? ]  |  
  [ [ reading || layout ] && <integer> ]     
  
```

Exemples
--------

### HTML


```html
<div id="main">
  <article>Lorem ipsum</article>
  <nav>consectetur adipisicing elit, sed do eiusmod</nav>
  <aside>tempor incididunt ut labore et dolore magna</aside>
</div>
```

### CSS

Grâce à ces déclarations CSS, on crée un disposition avec deux barres entourant un bloc de contenu. Le module de disposition des boîtes flexibles crée des bloc de tailles verticales égales et utilise autant d'espace horizontal qu'il y en a de disponible.


```css
#main {
  display: flex;
}

#main > article {
  flex: 1;
  order: 2;
  border: 1px dotted orange;
}

#main > nav {
  width: 200px;
  order: 1;
  border: 1px dotted blue;
}

#main > aside {
  width: 200px;
  order: 3;
  border: 1px dotted blue;
}
```

### Résultat

Accessibilité
-------------

La propriété `order` créera une incohérence entre l'ordre de présentation visuelle et celui du DOM. Cela aura un impact négatif pour les utilisateurs avec des troubles de la vision et qui utilisent des outils d'assistance comme les lecteurs d'écran. Si l'ordre visuel est important, les utilisateurs de lecteurs d'écran n'auront pas accès à l'ordre correct.

* *Flexbox & the keyboard navigation disconnect — Tink* (en anglais)
* *Source Order Matters, Adrian Roselli* (en anglais)
* Comprendre les règles du WCAG 1.3
* *Understanding Success Criterion 1.3.2, W3C Understanding WCAG 2.0* (en anglais)
Spécifications
--------------

| Specification |
| --- |
| CSS Display Module Level 3 # order-property |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Le guide CSS sur les boîtes flexibles : *Les concepts de base*
* Le guide CSS sur les boîtes flexibles : *Ordonner les éléments flexibles*
* Le guide sur la grille CSS : *La disposition en grille et l'accessibilité*