Zone de grille

Une autre façon de définir le positionnement des cellules est d'utiliser grid-template-areas et grid-area.

Prenons l'exemple suivant :

1
<main>
2
									<div id="div1">
3
									Contenu 1
4
									</div>
5
									<div id="div2">
6
									Contenu 2
7
									</div>
8
									<div id="div3">
9
									Contenu 3
10
									</div>
11
									...
12
									<div id="div9">
13
									Contenu 9
14
									</div>
15
									</main>
1
main {
2
									display: grid;
3
									grid-template-areas:
4
									"bloc1 bloc1 bloc2"
5
									"bloc3 bloc4 bloc4"
6
									"bloc3 bloc5 bloc6"
7
									"bloc8 bloc8 bloc6"
8
									"bloc8 bloc8 bloc7"
9
									"bloc9 bloc9 bloc9";
10
									grid-auto-columns: 100px;
11
									grid-auto-rows: 100px;
12
									}
13
14
									#div1 {
15
									grid-area: bloc1;
16
									}
17
18
									#div2 {
19
									grid-area: bloc2;
20
									}
21
22
									...
23
24
									#div9 {
25
									grid-area: bloc9;
26
									}
27
Contenu 1
Contenu 2
Contenu 3
Contenu 4
Contenu 5
Contenu 6
Contenu 7
Contenu 8
Contenu 9
grid-template-areas

Définitiongrid-template-areas

grid-template-areas permet de définir le motif de votre squelette

1
grid-template-areas:
2
									"bloc1 bloc1 bloc2"
3
									"bloc3 bloc4 bloc4"
4
									"bloc3 bloc5 bloc6"
5
									"bloc8 bloc8 bloc6"
6
									"bloc8 bloc8 bloc7"
7
									"bloc9 bloc9 bloc9";

Si vous remplacez un nom par un point, la cellule ne sera pas occupée.

1
grid-template-areas:
2
									"bloc1 bloc1 bloc2"
3
									"bloc3 bloc4 bloc4"
4
									"bloc3 bloc5 ."
5
									"bloc8 bloc8 bloc6"
6
									"bloc8 bloc8 bloc7"
7
									". bloc9 bloc9";
Contenu 1
Contenu 2
Contenu 3
Contenu 4
Contenu 5
Contenu 6
Contenu 7
Contenu 8
Contenu 9
grid-template-areas

Définitiongrid-area

grid-area permet de donner un nom à vos blocs.

1
#div1 {
2
									grid-area: bloc1;
3
									}
4
									#div2 {
5
									grid-area: bloc2;
6
									}
7
									...
8
									#div9 {
9
									grid-area: bloc9;
10
									}