Grilles CSS (CSS Grid)
======================

Le module ***CSS Grid layout*** (modèle de disposition en grille) est un module de la spécification CSS qui permet de créer des mises en page en divisant l'espace d'affichage en régions utilisables par une application ou en définissant des relations de taille, position et d'empilement entre les éléments HTML.

Comme les tableaux, la grille permet d'aligner des éléments sous forme de colonnes et de lignes mais à la différence des tableaux, la grille n'a pas de structure de contenu. Ainsi, on peut créer de nombreuses mises en page qui n'auraient pas été possibles avec les tableaux. Ainsi, les éléments fils d'un conteneur en grille peuvent être positionnés afin qu'ils se chevauchent ou qu'ils se comportent comme des éléments positionnés.

Un exemple simple
-----------------

Dans l'exemple qui suit, on montre comment utiliser une grille avec trois pistes en colonnes pour laquelle les nouvelles lignes créées mesureront au moins 100 pixels et auront au plus la taille automatique (définie par leur contenu). Les éléments sont placés sur la grille grâce aux numéros des lignes horizontales et verticales.
```

\* {
  box-sizing: border-box;
}
.wrapper {
  max-width: 940px;
  margin: 0 auto;
}

.wrapper > div {
  border: 2px solid rgb(233, 171, 88);
  border-radius: 5px;
  background-color: rgba(233, 171, 88, 0.5);
  padding: 1em;
  color: #d9480f;
}
```

### HTML


```html
<div class="wrapper">
  <div class="one">Un</div>
  <div class="two">Deux</div>
  <div class="three">Trois</div>
  <div class="four">Quatre</div>
  <div class="five">Cinq</div>
  <div class="six">Six</div>
</div>
```

### CSS


```css
.wrapper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 10px;
  grid-auto-rows: minmax(100px, auto);
}
.one {
  grid-column: 1 / 3;
  grid-row: 1;
}
.two {
  grid-column: 2 / 4;
  grid-row: 1 / 3;
}
.three {
  grid-column: 1;
  grid-row: 2 / 5;
}
.four {
  grid-column: 3;
  grid-row: 3;
}
.five {
  grid-column: 2;
  grid-row: 4;
}
.six {
  grid-column: 3;
  grid-row: 4;
}
```

Référence
---------

### Propriétés CSS

* `grid-template-columns`
* `grid-template-rows`
* `grid-template-areas`
* `grid-template`
* `grid-auto-columns`
* `grid-auto-rows`
* `grid-auto-flow`
* `grid`
* `grid-row-start`
* `grid-column-start`
* `grid-row-end`
* `grid-column-end`
* `grid-row`
* `grid-column`
* `grid-area`
* `row-gap`
* `column-gap`
* `gap`
### Fonctions CSS

* `repeat()`
* `minmax()`
* `fit-content()`
### Types de donnée CSS

`<flex>`### Termes définis dans le glossaire

* Grille
* Lignes
* Pistes
* Cellules
* Zones
* Gouttières
* Axe
* Ligne horizontale
* Colonnes
Guides
------

* Les concepts de base
* Placer les éléments sur les lignes d'une grille CSS
* Le modèle de grille et les autres modèles de disposition
* Utiliser des lignes nommées sur une grille
* Définir des zones sur une grille
* Le placement automatique sur une grille
* L'alignement des boîtes avec les grilles CSS
* Les grilles CSS, les valeurs logiques et les modes d'écriture
* Les grilles CSS et l'accessibilité
* Les grilles CSS et l'amélioration progressive
* Construire des dispositions courantes avec des grilles CSS
* Les sous-grilles (*subgrid*)
Ressources externes
-------------------

* Des exemples créés par Jen Simmons (en anglais)
* Les grilles CSS par l'exemple - un ensemble d'exemples et de tutoriels (en anglais)
* La référence Codrops sur les grilles CSS (en anglais)
* L'inspecteur de grille dans les outils de développement Firefox
* Le bac à sable CSS Grid (en anglais)
* Les grilles CSS et Internet Explorer 11 (prothèse - *polyfill*)
Spécifications
--------------

| Specification |
| --- |
| CSS Grid Layout Module Level 2  |