aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/css/place-content/index.html
blob: 58064fcb1f6e69e509d7a1552e082dbea1a2629d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
---
title: place-content
slug: Web/CSS/place-content
tags:
  - CSS
  - Propriété
  - Propriété raccourcie
  - Reference
translation_of: Web/CSS/place-content
---
<div>{{CSSRef}}</div>

<p>La propriété raccourcie <code><strong>place</strong></code><strong><code>-content</code></strong> permet de définir les valeurs des propriétés {{cssxref("align-content")}} et {{cssxref("justify-content")}}. Elle peut être utilisée pour n'importe quelle méthode de disposition (boîtes flexibles, grilles, etc;) qui prend en charge ces deux propriétés d'alignement.</p>

<div>{{EmbedInteractiveExample("pages/css/place-content.html")}}</div

<h2 id="Syntaxe">Syntaxe</h2>

<pre class="brush: css no-line-numbers">/* Valeurs décrivant l'alignement */
/* Note : align-content ne gère pas les valeurs left et right */
place-content: center start;
place-content: start center;
place-content: end left;
place-content: flex-start center;
place-content: flex-end center;

/* Valeurs décrivant l'alignement par rapport à la ligne de base */
/* Note : justify-content ne gère pas les valeurs liées à la ligne de base */
place-content: baseline center;
place-content: first baseline space-evenly;
place-content: last baseline right;

/* Valeurs décrivant la distribution de l'alignment */
place-content: space-between space-evenly;
place-content: space-around space-evenly;
place-content: space-evenly stretch;
place-content: stretch space-evenly;

/* Valeurs globales */
place-content: inherit;
place-content: initial;
place-content: unset;</pre>

<p>La première valeur utilisée sera celle qui correspond à {{cssxref("align-content")}} et la seconde valeur correspondra à {{cssxref("justify-content")}}. Si la deuxième valeur n'est pas présente, la première valeur indiquée sera également utilisée pour <code>justify-content</code>.</p>

<div class="warning">
<p><strong>Attention :</strong> Si une seule valeur est fournie et que celle-ci est invalide pour l'une ou l'autre des propriétés détaillées, c'est la déclaration entière qui sera invalide.</p>
</div>

<h3 id="Valeurs">Valeurs</h3>

<dl>
 <dt><code>start</code></dt>
 <dd>Les éléments sont alignés vers le début du conteneur pour l'axe correspondant.</dd>
 <dt><code>end</code></dt>
 <dd>Les éléments sont alignés vers la fin du conteneur pour l'axe correspondant.</dd>
 <dt><code>flex-start</code></dt>
 <dd>Les éléments sont alignés vers le début du conteneur flexible pour l'axe correspondant. Cette valeur ne s'applique qu'aux éléments flexibles. Pour les éléments qui ne sont pas des éléments d'un conteneur flexible, cette valeur sera synonyme de <code>start</code>.</dd>
 <dt><code>flex-end</code></dt>
 <dd>Les éléments sont alignés vers la fin du conteneur flexible pour l'axe correspondant. Cette valeur ne s'applique qu'aux éléments flexibles. Pour les éléments qui ne sont pas des éléments d'un conteneur flexible, cette valeur sera synonyme de <code>end</code>.</dd>
 <dt><code>center</code></dt>
 <dd>Les éléments sont alignés au centre du conteneur dans l'axe correspondant.</dd>
 <dt><code>left</code></dt>
 <dd>Les éléments sont alignés vers le bord gauche du conteneur dans l'axe correspondant. Si l'axe de cette propriété n'est pas parallèle à l'axe en ligne (<em>inline axis</em>), cette valeur sera synonyme de <code>start</code>.</dd>
 <dt><code>right</code></dt>
 <dd>Les éléments sont alignés vers le bord droit du conteneur dans l'axe correspondant. Si l'axe de cette propriété n'est pas parallèle à l'axe en ligne (<em>inline axis</em>), cette valeur sera synonyme de <code>start</code>.</dd>
 <dt><code>space-between</code></dt>
 <dd>Les éléments sont équirépartis dans le conteneur sur l'axe correspondant. Ainsi, l'espace entre chaque élément adjacent sera le même. Le premier élément est aligné sur le bord du conteneur et le dernier élément est également aligné sur le bord du conteneur à la fin de l'axe.</dd>
 <dt><code>baseline<br>
 first baseline</code><br>
 <code>last baseline</code></dt>
 <dd>Specifies participation in first- or last-baseline alignment: aligns the alignment baseline of the box’s first or last baseline set with the corresponding baseline in the shared first or last baseline set of all the boxes in its baseline-sharing group.<br>
 The fallback alignment for <code>first baseline</code> is <code>start</code>, the one for <code>last baseline</code> is <code>end</code>.</dd>
 <dt><code>space-around</code></dt>
 <dd>Les éléments sont équirépartis dans le conteneur sur l'axe correspondant. L'espace entre chaque élément adjacent sera le même. L'espace entre le bord du conteneur et le premier élément sera la moitié de l'espace utilisé entre chaque élément. L'espace entre le dernier élément et le bord du conteneur sera la moitié de l'espace utilisé entre chaque élément.</dd>
 <dt><code>space-evenly</code></dt>
 <dd>Les éléments sont équirépartis dans le conteneur sur l'axe correspondant. L'espace entre chaque élément adjacent sera le même, ce sera également cet espace qui sera utilisé entre le bord du conteneur et le premier élément et entre le dernier élément et le bord du conteneur.</dd>
 <dt><code>stretch</code></dt>
 <dd>Si la somme des tailles des éléments est inférieure à la taille du conteneur pour l'axe correspondant, tous les éléments dimensionnés automatiquement seront étirés de la même façon (et pas de façon proportionnelle) tout en respectant les contraintes imposées par {{cssxref("max-height")}}/{{cssxref("max-width")}} (ou par les fonctionnalités équivalentes) afin que la taille de l'ensemble des éléments soit exactement celle du conteneur.</dd>
</dl>

<h3 id="Syntaxe_formelle">Syntaxe formelle</h3>

{{CSSSyntax}}

<h2 id="Exemples">Exemples</h2>

<h3 id="CSS">CSS</h3>

<pre class="brush: css">#container {
  display: flex;
  height:240px;
  width: 240px;
  flex-wrap: wrap;
  background-color: #8c8c8c;
  writing-mode: horizontal-tb; /* Cette valeur peut être modifiée dans l'exemple */
  direction: ltr; /* Cette valeur peut être modifiée dans l'exemple */
  place-content: flex-end center; /* Cette valeur peut être modifiée dans l'exemple */
}

div &gt; div {
  border: 2px solid #8c8c8c;
  width: 50px;
  background-color: #a0c8ff;
}

.small {
  font-size: 12px;
  height: 40px;
}

.large {
  font-size: 14px;
  height: 50px;
}
</pre>

<h3 id="HTML">HTML</h3>

<pre class="brush: html">&lt;div id="container"&gt;
  &lt;div class="small"&gt;Lorem&lt;/div&gt;
  &lt;div class="small"&gt;Lorem&lt;br/&gt;ipsum&lt;/div&gt;
  &lt;div class="large"&gt;Lorem&lt;/div&gt;
  &lt;div class="large"&gt;Lorem&lt;br/&gt;impsum&lt;/div&gt;
  &lt;div class="large"&gt;&lt;/div&gt;
  &lt;div class="large"&gt;&lt;/div&gt;
&lt;/div&gt;
</pre>

<pre class="hidden brush:html">&lt;code&gt;writing-mode:&lt;/code&gt;&lt;select id="writingMode"&gt;
  &lt;option value="horizontal-tb" selected&gt;horizontal-tb&lt;/option&gt;
  &lt;option value="vertical-rl"&gt;vertical-rl&lt;/option&gt;
  &lt;option value="vertical-lr"&gt;vertical-lr&lt;/option&gt;
  &lt;option value="sideways-rl"&gt;sideways-rl&lt;/option&gt;
  &lt;option value="sideways-lr"&gt;sideways-lr&lt;/option&gt;
&lt;/select&gt;&lt;code&gt;;&lt;/code&gt;&lt;br/&gt;
&lt;code&gt;direction:&lt;/code&gt;&lt;select id="direction"&gt;
  &lt;option value="ltr" selected&gt;ltr&lt;/option&gt;
  &lt;option value="rtl"&gt;rtl&lt;/option&gt;
&lt;/select&gt;&lt;code&gt;;&lt;/code&gt;&lt;br/&gt;
&lt;code&gt;place-content:&lt;/code&gt;&lt;select id="alignContentAlignment"&gt;
  &lt;option value="normal"&gt;normal&lt;/option&gt;
  &lt;option value="first baseline"&gt;first baseline&lt;/option&gt;
  &lt;option value="last baseline"&gt;last baseline&lt;/option&gt;
  &lt;option value="baseline"&gt;baseline&lt;/option&gt;
  &lt;option value="space-between"&gt;space-between&lt;/option&gt;
  &lt;option value="space-around"&gt;space-around&lt;/option&gt;
  &lt;option value="space-evenly" selected&gt;space-evenly&lt;/option&gt;
  &lt;option value="stretch"&gt;stretch&lt;/option&gt;
  &lt;option value="center"&gt;center&lt;/option&gt;
  &lt;option value="start"&gt;start&lt;/option&gt;
  &lt;option value="end"&gt;end&lt;/option&gt;
  &lt;option value="flex-start"&gt;flex-start&lt;/option&gt;
  &lt;option value="flex-end"&gt;flex-end&lt;/option&gt;
&lt;/select&gt;
&lt;select id="justifyContentAlignment"&gt;
  &lt;option value="normal"&gt;normal&lt;/option&gt;
  &lt;option value="space-between"&gt;space-between&lt;/option&gt;
  &lt;option value="space-around"&gt;space-around&lt;/option&gt;
  &lt;option value="space-evenly"&gt;space-evenly&lt;/option&gt;
  &lt;option value="stretch"&gt;stretch&lt;/option&gt;
  &lt;option value="center" selected&gt;center&lt;/option&gt;
  &lt;option value="start"&gt;start&lt;/option&gt;
  &lt;option value="end"&gt;end&lt;/option&gt;
  &lt;option value="flex-start"&gt;flex-start&lt;/option&gt;
  &lt;option value="flex-end"&gt;flex-end&lt;/option&gt;
  &lt;option value="left"&gt;left&lt;/option&gt;
  &lt;option value="right"&gt;right&lt;/option&gt;
&lt;/select&gt;&lt;code&gt;;&lt;/code&gt;
</pre>

<pre class="brush: js hidden">var update = function () {
   document.getElementById("container").style.placeContent = document.getElementById("alignContentAlignment").value + " " + document.getElementById("justifyContentAlignment").value;
}

var alignContentAlignment = document.getElementById("alignContentAlignment");
alignContentAlignment.addEventListener("change",  update);

var justifyContentAlignment = document.getElementById("justifyContentAlignment");
justifyContentAlignment.addEventListener("change", update);

var writingM = document.getElementById("writingMode");
writingM.addEventListener("change", function (evt) {
   document.getElementById("container").style.writingMode = evt.target.value;
});
var direction = document.getElementById("direction");
direction.addEventListener("change", function (evt) {
   document.getElementById("container").style.direction = evt.target.value;
});
</pre>

<h3 id="Résultat">Résultat</h3>

<p>{{EmbedLiveSample("Exemples", "370", "300")}}</p>

<h2 id="Spécifications">Spécifications</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Spécification</th>
   <th scope="col">État</th>
   <th scope="col">Commentaires</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName("CSS3 Box Alignment", "#propdef-place-content", "place content")}}</td>
   <td>{{Spec2("CSS3 Box Alignment")}}</td>
   <td>Définition initiale.</td>
  </tr>
 </tbody>
</table>

<p>{{cssinfo}}</p>

<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>

<p>{{Compat("css.properties.place-content")}}</p>

<h3 id="Prise_en_charge_pour_les_dispositions_flexibles">Prise en charge pour les dispositions flexibles</h3>

<p>{{Compat("css.properties.place-content.flex_context")}}</p>

<h3 id="Prise_en_charge_pour_les_grilles">Prise en charge pour les grilles</h3>

<p>{{Compat("css.properties.place-content.grid_context")}}</p>

<h2 id="Voir_aussi">Voir aussi</h2>

<ul>
 <li><a href="/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox">Utiliser les boîtes flexibles en CSS</a></li>
 <li>Guide sur les grilles : <em><a href="/fr/docs/Web/CSS/CSS_Grid_Layout/Box_Alignment_in_CSS_Grid_Layout">Aligner des objets dans une grille</a></em></li>
 <li>Guide sur les boîtes flexibles : <em><a href="/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox">Les concepts de bases</a></em></li>
 <li>Guide sur les boîtes flexibles : <em><a href="/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container">Aligner des objets dans un conteneur flexible</a></em></li>
 <li><a href="/fr/docs/Web/CSS/CSS_Box_Alignment">Le module de spécification CSS Box Alignment</a></li>
 <li>La propriété {{cssxref("align-content")}}</li>
 <li>La propriété {{cssxref("justify-content")}}</li>
</ul>