aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/css/flex/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/web/css/flex/index.html')
-rw-r--r--files/fr/web/css/flex/index.html299
1 files changed, 299 insertions, 0 deletions
diff --git a/files/fr/web/css/flex/index.html b/files/fr/web/css/flex/index.html
new file mode 100644
index 0000000000..c88b0da7b0
--- /dev/null
+++ b/files/fr/web/css/flex/index.html
@@ -0,0 +1,299 @@
+---
+title: flex
+slug: Web/CSS/flex
+tags:
+ - CSS
+ - Propriété
+ - Reference
+translation_of: Web/CSS/flex
+---
+<div>{{CSSRef}}</div>
+
+<p>La propriété <strong><code>flex</code></strong> est une propriété raccourcie qui définit la capacité d'un élément flexible à modifier ses dimensions afin de remplir l'espace disponible de son conteneur.</p>
+
+<p>Les propriétés détaillées correspondantes à cette propriété raccourcie sont {{cssxref("flex-grow")}}, {{cssxref("flex-shrink")}} et {{cssxref("flex-basis")}}.</p>
+
+<p>Les éléments flexibles peuvent être étirés ou réduits pour utiliser un espace proportionnel à leur coefficient de grossissement ou de rétrécissement afin de ne pas dépasser d'un conteneur.</p>
+
+<div>{{EmbedInteractiveExample("pages/css/flex.html")}}</div>
+
+<p class="hidden">Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> et à envoyer une <em>pull request</em> !</p>
+
+<p>Pour la plupart des cas, on utilisera une des valeurs suivantes : <code>auto</code>, <code>initial</code>, <code>none</code> ou un nombre positif sans unité. Pour voir l'effet de ces valeurs, essayez de redimensionner les conteneurs flexibles ci-après :</p>
+
+<div id="flex">
+<pre class="hidden brush: html notranslate">&lt;div class="flex-container"&gt;
+
+ &lt;div class="item auto"&gt;auto&lt;/div&gt;
+ &lt;div class="item auto"&gt;auto&lt;/div&gt;
+ &lt;div class="item auto"&gt;auto&lt;/div&gt;
+
+&lt;/div&gt;
+
+&lt;div class="flex-container"&gt;
+
+ &lt;div class="item auto"&gt;auto&lt;/div&gt;
+ &lt;div class="item initial"&gt;initial&lt;/div&gt;
+ &lt;div class="item initial"&gt;initial&lt;/div&gt;
+
+&lt;/div&gt;
+
+&lt;div class="flex-container"&gt;
+
+ &lt;div class="item auto"&gt;auto&lt;/div&gt;
+ &lt;div class="item auto"&gt;auto&lt;/div&gt;
+ &lt;div class="item none"&gt;none&lt;/div&gt;
+
+&lt;/div&gt;
+
+&lt;div class="flex-container"&gt;
+
+ &lt;div class="item initial"&gt;initial&lt;/div&gt;
+ &lt;div class="item none"&gt;none&lt;/div&gt;
+ &lt;div class="item none"&gt;none&lt;/div&gt;
+
+&lt;/div&gt;
+
+&lt;div class="flex-container"&gt;
+
+ &lt;div class="item four"&gt;4&lt;/div&gt;
+ &lt;div class="item two"&gt;2&lt;/div&gt;
+ &lt;div class="item one"&gt;1&lt;/div&gt;
+
+&lt;/div&gt;
+</pre>
+
+<pre class="hidden brush: css notranslate">* {
+ box-sizing: border-box;
+}
+
+.flex-container {
+ background-color: #F4F7F8;
+ resize: horizontal;
+ overflow: hidden;
+ display: flex;
+ margin: 1em;
+}
+
+.item {
+ margin: 1em;
+ padding: 0.5em;
+ width: 110px;
+ min-width: 0;
+ background-color: #1B5385;
+ color: white;
+ font-family: monospace;
+}
+
+.initial {
+ flex: initial;
+}
+
+.auto {
+ flex: auto;
+}
+
+.none {
+ flex: none;
+}
+
+.four {
+ flex: 4;
+}
+
+.two {
+ flex: 2;
+}
+
+.one {
+ flex: 1;
+}
+</pre>
+
+<p>{{EmbedLiveSample("flex", "100%","370")}}</p>
+
+<div id="flex">
+<p>Par défaut, les éléments flexibles ne se rétrécissent pas en dessous de la taille minimale du contenu. Pour modifier ce comportement, il faudra paramétrer {{cssxref("min-width")}} ou {{cssxref("min-height")}}.</p>
+</div>
+
+<p>Voir la page <a href="/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Utilisation_des_flexbox_en_CSS" title="CSS/Using_CSS_flexible_boxes">Utiliser les boîtes flexibles (<em>flexbox</em>) CSS</a> pour plus d'informations.</p>
+</div>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="brush:css no-line-numbers notranslate">/* Valeurs de base */
+flex: auto;
+flex: initial;
+flex: none;
+
+/* Une valeur sans unité pour flex-grow */
+/* flex-basis vaut alors 0 */
+flex: 2;
+
+/* Une valeur, largeur/hauteur: flex-basis */
+flex: 10em;
+flex: 30px;
+flex: content;
+
+/* Deux valeurs : flex-grow | flex-basis */
+flex: 1 30px;
+
+/* Deux valeurs : flex-grow | flex-shrink */
+/* flex-basis vaut alors 0 */
+flex: 2 2;
+
+/* Trois valeurs : flex-grow | flex-shrink | flex-basis */
+flex: 2 2 10%;
+
+/* Valeurs globales */
+flex: inherit;
+flex: initial;
+flex: unset;
+</pre>
+
+<p>La propriété <code>flex</code> peut être définie avec une, deux ou trois valeurs.</p>
+
+<ul>
+ <li><strong>Avec une valeur</strong>, la syntaxe doit être :
+
+ <ul>
+ <li>un nombre sans unité ({{cssxref("&lt;number&gt;")}}) : celui-ci est alors interprété comme la valeur de <code><a href="#grow">&lt;flex-grow&gt;</a></code></li>
+ <li>ou une valeur de largeur valide ({{cssxref("width")}}) : celle-ci est alors interprétée comme la valeur de <code><a href="#basis">&lt;flex-basis&gt;</a></code></li>
+ <li>ou le mot-clé <code><a href="#none">none</a></code>.</li>
+ </ul>
+ </li>
+ <li><strong>Avec deux valeurs</strong>
+ <ul>
+ <li>la première doit être un nombre sans unité ({{cssxref("&lt;number&gt;")}}) qui correspond à la valeur de <code><a href="#grow">&lt;flex-grow&gt;</a></code>.</li>
+ <li>la seconde valeur doit être :
+ <ul>
+ <li>un nombre sans unité ({{cssxref("&lt;number&gt;")}}) : celui-ci est alors interprété comme la valeur de <code><a href="#shrink">&lt;flex-shrink&gt;</a></code></li>
+ <li>ou une valeur de largeur valide ({{cssxref("width")}}) : celle-ci est alors interprétée comme la valeur de <code><a href="#basis">&lt;flex-basis&gt;</a></code></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li><strong>Avec trois valeurs</strong>
+ <ul>
+ <li>la première valeur doit être un nombre sans unité ({{cssxref("&lt;number&gt;")}}) : celui-ci est alors interprété comme la valeur de <code><a href="#grow">&lt;flex-grow&gt;</a></code></li>
+ <li>la deuxième valeur doit être un nombre sans unité ({{cssxref("&lt;number&gt;")}}) : celui-ci est alors interprété comme la valeur de <code><a href="#shrink">&lt;flex-shrink&gt;</a></code></li>
+ <li>la troisième valeur doit être une valeur de largeur valide ({{cssxref("width")}}) : celle-ci est alors interprétée comme la valeur de <code><a href="#basis">&lt;flex-basis&gt;</a></code></li>
+ </ul>
+ </li>
+</ul>
+
+<h3 id="Valeurs">Valeurs</h3>
+
+<div id="flex">
+<dl>
+ <dt><code>auto</code></dt>
+ <dd>L'élément est dimensionné selon ses propriétés <code>width</code> et <code>height</code> mais peut grandir pour absorber l'espace libre disponible dans le conteneur flexible ou rétrécir à sa taille minimale pour rentrer dans le conteneur. Cette valeur est équivalente à "<code>flex: 1 1 auto</code>".</dd>
+ <dt><code>initial</code></dt>
+ <dd>L'élément est dimensionné selon ses propriétés <code>width</code> et <code>height</code>. Ce comportement est équivalent à la valeur par défaut (<code>0 1 auto</code>). Si besoin, l'élément rétrécit à sa taille minimale pour rentrer dans le conteneur mais il ne grandira pas s'il y a de l'espace disponible dans ce conteneur. Ce mot-clé est équivalent à "<code>flex: 0 1 auto</code>".</dd>
+ <dt><code>none</code></dt>
+ <dd>L'élément est dimensionné par rapport à ses propriétés <code>width</code> et <code>height</code>. Il n'est pas flexible : il ne peut ni rétrécir ni grandir selon l'espace du conteneur flexible. Ce mot-clé est équivalent à "<code>flex: 0 0 auto</code>".</dd>
+</dl>
+</div>
+
+<dl>
+ <dt><a id="grow" name="grow"><code>&lt;'flex-grow'&gt;</code></a></dt>
+ <dd>Voir {{cssxref("flex-grow")}}. Les valeurs négatives sont interdites et la valeur par défaut est <code>1</code>.</dd>
+ <dt><a id="shrink" name="shrink"><code>&lt;'flex-shrink'&gt;</code></a></dt>
+ <dd>Voir {{cssxref("flex-shrink")}}. Les valeurs négatives sont interdites et la valeur par défaut est <code>1</code>.</dd>
+ <dt><a id="basis" name="basis"><code>&lt;'flex-basis'&gt;</code></a></dt>
+ <dd>Voir {{cssxref("flex-basis")}}. Une valeur valide pour {{cssxref("width")}} et {{cssxref("height")}}. La valeur par défaut est <code>0</code>.</dd>
+</dl>
+
+<div class="note"><strong>Note :</strong> Lorsqu'on utilise une ou deux valeurs sans unité dans la règle, <code>flex-basis</code> vaudra 0. Pour plus d'informations, voir <a href="https://drafts.csswg.org/css-flexbox/#flex-common">le brouillon de spécification du module des boîtes flexibles</a>.</div>
+
+<h3 id="Syntaxe_formelle">Syntaxe formelle</h3>
+
+<pre class="syntaxbox notranslate">{{csssyntax}}</pre>
+
+<h2 id="Exemples">Exemples</h2>
+
+<h3 id="CSS">CSS</h3>
+
+<pre class="brush: css notranslate">#flex-container {
+ display: flex;
+ flex-direction: row;
+}
+
+#flex-container &gt; .flex-item {
+ flex: auto;
+}
+
+#flex-container &gt; .raw-item {
+ width: 5rem;
+}
+</pre>
+
+<h3 id="HTML">HTML</h3>
+
+<pre class="brush: html notranslate">&lt;div id="flex-container"&gt;
+    &lt;div class="flex-item" id="flex"&gt;Boîte flexible (cliquer pour passer à la boîte « normale »)&lt;/div&gt;
+    &lt;div class="raw-item" id="raw"&gt;Boîte « normale » &lt;/div&gt;
+&lt;/div&gt;
+</pre>
+
+<h3 id="JavaScript">JavaScript</h3>
+
+<pre class="brush: js notranslate">var flex = document.getElementById("flex");
+var raw = document.getElementById("raw");
+flex.addEventListener("click", function() {
+ raw.style.display = raw.style.display == "none" ? "block" : "none";
+});
+</pre>
+
+<pre class="brush: css notranslate">#flex-container {
+ width: 100%;
+ font-family: Consolas, Arial, sans-serif;
+}
+
+#flex-container &gt; div {
+ border: 1px solid #f00;
+ padding: 1rem;
+}
+
+#flex-container &gt; .raw-item {
+ border: 1px solid #000;
+}
+</pre>
+
+<h3 id="Résultat">Résultat</h3>
+
+<p>{{EmbedLiveSample('Exemples','100%','60')}}</p>
+
+<h2 id="Spécifications">Spécifications</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th>Spécification</th>
+ <th>État</th>
+ <th>Commentaires</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('CSS3 Flexbox', '#flex-property', 'flex')}}</td>
+ <td>{{Spec2('CSS3 Flexbox')}}</td>
+ <td>Définition initiale.</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>{{cssinfo}}</p>
+
+<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
+
+<div class="hidden">Ce tableau de compatibilité a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une <em>pull request</em> sur <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div>
+
+<p>{{Compat("css.properties.flex")}}</p>
+
+<h2 id="Voir_aussi">Voir aussi</h2>
+
+<ul>
+ <li>Guide sur les boîtes flexibles : <em><a href="/fr/docs/Web/CSS/Disposition_flexbox_CSS/Concepts_de_base_flexbox">Les concepts de bases</a></em></li>
+ <li>Guide sur les boîtes flexibles : <em><a href="/fr/docs/Web/CSS/Disposition_flexbox_CSS/Contrôler_les_proportions_des_boîtes_flexibles_le_long_de_l_axe_principal">Contrôler les proportions des boîtes flexibles le long de l'axe principal</a></em></li>
+</ul>