Bac à sable CSS Flexbox

Expérimentez visuellement avec les propriétés des conteneurs et éléments flexbox. Générez du CSS, du Tailwind et du HTML avec aperçu en direct et préréglages pour les mises en page courantes.

Mis à jour le

Share:
Home/Developer Tools/CSS Flexbox Playground

CSS Flexbox Playground

Visually experiment with CSS flexbox container and item properties, then copy CSS, Tailwind, or HTML output.

Preset Scenarios

Container
flex

8px

Live Preview
3 items

1
2
3

Items (3/12)

Item 1
Item 2
Item 3

Generated Code

.flex-container {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: stretch;
  align-content: stretch;
  gap: 8px;
}

.flex-item-1 {
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
}

.flex-item-2 {
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
}

.flex-item-3 {
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
}

Questions Fréquentes

Qu'est-ce que le CSS Flexbox Playground ?

Le CSS Flexbox Playground est un outil en ligne gratuit pour expérimenter visuellement avec les propriétés des conteneurs et des éléments flexbox. Il génère une sortie en CSS, Tailwind et HTML avec un aperçu en direct et des préréglages pour les mises en page courantes. Il fonctionne entièrement dans votre navigateur, sans installation ni inscription.

flex ou inline-flex ?

display:flex est un conteneur flex de niveau bloc qui occupe toute la largeur du parent. inline-flex est de niveau ligne et n'occupe que la largeur de son contenu, s'intégrant au texte environnant.

flex-grow ou flex-basis ?

flex-basis définit la taille initiale avant la répartition de l'espace libre. flex-grow définit comment l'espace libre restant est partagé entre les éléments.

Comment centrer le contenu ?

Parent : display:flex + justify-content:center + align-items:center. Le préréglage Centré applique exactement cette configuration.

Le CSS Flexbox Playground est-il gratuit ?

Oui, le CSS Flexbox Playground est 100% gratuit, sans inscription, sans frais cachés et sans limite d'utilisation. Tout le traitement s'effectue localement dans votre navigateur, garantissant une confidentialité totale.

Mes données sont-elles en sécurité avec cet outil ?

Absolument. Le CSS Flexbox Playground traite tout côté client, dans votre navigateur. Aucune donnée n'est envoyée ni stockée sur un serveur. Votre contenu reste privé sur votre appareil à tout moment.

Le CSS Flexbox Playground fonctionne-t-il sur les appareils mobiles ?

Oui, le CSS Flexbox Playground est entièrement responsive et fonctionne sur smartphones et tablettes. Vous pouvez l'utiliser sur n'importe quel appareil doté d'un navigateur web moderne, sans aucun téléchargement d'application.

Dois-je créer un compte pour utiliser cet outil ?

Aucun compte ni inscription n'est nécessaire. Ouvrez simplement le CSS Flexbox Playground dans votre navigateur et commencez à l'utiliser immédiatement. Il n'y a ni barrière d'inscription ni restriction d'utilisation.

Quels langages de programmation ou formats cet outil prend-il en charge ?

Le CSS Flexbox Playground prend en charge un large éventail de formats et de langages populaires. Consultez l'interface de l'outil pour la liste complète des options prises en charge.

Quels navigateurs sont pris en charge ?

Le CSS Flexbox Playground fonctionne sur tous les navigateurs modernes, dont Chrome, Firefox, Safari, Edge et Opera. Pour une expérience optimale, utilisez la dernière version de votre navigateur préféré.

Quelle est la différence entre justify-content et align-items en flexbox ?

Ces deux propriétés déplacent les éléments le long d'axes opposés. justify-content positionne les éléments le long de l'axe principal — la direction définie par flex-direction — elle contrôle donc l'espacement horizontal dans une ligne (row) et l'espacement vertical dans une colonne (column). align-items positionne les éléments le long de l'axe transversal, la direction perpendiculaire, donc elle gère l'alignement vertical dans une ligne et horizontal dans une colonne. C'est pourquoi passer flex-direction de row à column semble inverser le rôle de chaque propriété. justify-content propose des valeurs comme flex-start, center, space-between, space-around et space-evenly, tandis qu'align-items propose stretch, flex-start, flex-end, center et baseline. Un moyen simple de s'en souvenir : justify répartit les éléments le long de la ligne, align les positionne verticalement à l'intérieur de celle-ci. Dans ce bac à sable, vous pouvez activer chaque propriété indépendamment et observer l'aperçu en pointillés se réorganiser instantanément, ce qui rend évidente la distinction entre axe principal et axe transversal sans avoir à l'apprendre par cœur dans la spécification, puis copier le CSS ou les classes Tailwind obtenus.

Comment créer une grille de cartes responsive avec flexbox ?

Réglez le conteneur sur display:flex avec flex-wrap:wrap afin que les éléments passent à la ligne suivante lorsqu'ils manquent de place, puis donnez à chaque carte un flex-basis partagé pour contrôler sa largeur avant le retour à la ligne. Une base de 200px combinée à flex-grow permet aux cartes de s'étendre pour remplir la ligne et de se réorganiser en moins de colonnes sur les écrans étroits, le tout sans media queries. L'ajout d'un gap garde un espacement cohérent entre les lignes et les colonnes. Le préréglage Card Grid de ce bac à sable charge exactement cette configuration — six cartes qui s'enroulent en partageant un flex-basis avec un gap de 16px — vous pouvez ainsi étudier une mise en page responsive fonctionnelle, ajuster la base ou le nombre d'éléments, et regarder les colonnes se réorganiser en direct à mesure que la largeur de l'aperçu change. Comme les cartes se dimensionnent à partir de leur base plutôt que d'un nombre de colonnes fixe, les mêmes règles s'adaptent des grands écrans de bureau jusqu'aux téléphones. Une fois le résultat satisfaisant, copiez le CSS ou les classes Tailwind générés directement dans votre projet.

Que signifie flex: 0 0 240px dans le raccourci flex ?

flex est un raccourci pour trois propriétés, dans cet ordre : flex-grow, flex-shrink et flex-basis. Ainsi, flex: 0 0 240px signifie flex-grow:0 (l'élément ne s'étirera pas pour remplir l'espace supplémentaire), flex-shrink:0 (il ne rétrécira pas en dessous de sa taille même si l'espace vient à manquer), et flex-basis:240px (sa largeur de départ est fixée à 240px). Le résultat est un élément rigide, de largeur fixe — parfait pour une barre latérale qui doit rester à 240px de large pendant que la zone de contenu principale s'adapte tout autour. Le préréglage Sidebar Layout utilise exactement cette valeur pour sa colonne fixe à côté d'une zone principale flexible. À l'inverse, flex: 1 se développe en flex-grow:1, flex-shrink:1, flex-basis:0, ce qui pousse un élément à remplir avidement l'espace disponible — un comportement opposé. Comme le bac à sable expose flex-grow, flex-shrink et flex-basis comme contrôles distincts sur chaque carte d'élément, vous pouvez ajuster ce raccourci morceau par morceau, en voir l'effet dans l'aperçu en direct, puis copier le CSS obtenu, propre et prêt à l'emploi.

Pourquoi align-items n'a-t-il aucun effet visible sur mes éléments flex ?

align-items ne change quelque chose que lorsque les éléments sont plus petits que le conteneur le long de l'axe transversal, puisqu'elle les positionne dans cet espace restant. Deux situations courantes masquent son effet. D'abord, la valeur par défaut d'align-items est stretch, qui fait s'étirer les éléments pour remplir tout l'axe transversal — ils occupent donc déjà toute la hauteur dans une ligne et il n'y a aucun espace dans lequel s'aligner. Ensuite, si chaque élément a la même taille que le conteneur ou n'a pas de hauteur explicite, basculer entre flex-start, center et flex-end ne produit aucun mouvement visible. Donnez aux éléments une largeur ou une hauteur fixe, ou changez align-items pour une valeur différente de stretch, et l'alignement devient évident. Vous pouvez aussi surcharger un seul élément avec align-self si vous souhaitez positionner uniquement un enfant différemment. Dans ce bac à sable, vous pouvez définir la largeur et la hauteur par élément sur chaque carte, puis activer align-items pour voir exactement quand elle prend effet avant de copier le code.

Quelle est la différence entre flex-wrap wrap et nowrap ?

flex-wrap détermine si les éléments flex sont forcés sur une seule ligne ou peuvent se répartir sur plusieurs lignes. Avec nowrap, la valeur par défaut, tous les éléments restent sur une seule ligne et rétrécissent pour s'y ajuster, ce qui peut les écraser ou provoquer un débordement lorsqu'il n'y a pas assez de place. Avec wrap, les éléments qui ne tiennent pas passent à la ligne suivante, conservant leur taille préférée et créant une mise en page multi-lignes — essentiel pour les grilles de cartes responsives et les listes d'étiquettes. Il existe aussi wrap-reverse, qui répartit les lignes supplémentaires empilées dans la direction opposée. Notez qu'align-content, qui distribue ces lignes une fois enroulées, n'a d'effet que lorsque le retour à la ligne produit effectivement plus d'une ligne. Ce bac à sable expose nowrap, wrap et wrap-reverse comme un seul contrôle, vous pouvez donc basculer entre eux et observer les éléments se réorganiser dans l'aperçu en direct avant de copier le code.

À propos du bac à sable CSS Flexbox

Le CSS Flexbox Playground est un bac à sable visuel gratuit pour apprendre et construire des mises en page flexbox. Plutôt que de modifier du CSS, rafraîchir le navigateur et deviner pourquoi les éléments ne s'alignent pas, vous activez chaque propriété flexbox depuis un panneau de contrôle et observez un aperçu en direct se réorganiser instantanément. Une fois la mise en page satisfaisante, l'outil vous fournit du code prêt à coller dans trois formats : CSS pur, classes Tailwind CSS et HTML brut. Il est conçu pour les développeurs front-end, les étudiants qui apprennent la mise en page, et les designers qui veulent finaliser une mise en page avant même de toucher à une feuille de style.

Tout s'exécute localement dans votre navigateur. Aucune inscription, aucun compte, et rien n'est envoyé à un serveur — l'aperçu est rendu par le moteur de mise en page de votre propre navigateur, et le code généré est produit sur votre appareil. Cela signifie aussi que l'alignement que vous voyez correspond exactement à ce qu'un vrai navigateur affichera.

Ce que vous pouvez contrôler

Le bac à sable sépare les deux moitiés du flexbox — le conteneur et ses éléments — de la même manière que le spécifie la norme CSS.

  • Propriétés du conteneur : display (flex ou inline-flex), flex-direction (row, row-reverse, column, column-reverse), flex-wrap (nowrap, wrap, wrap-reverse), justify-content (six valeurs de flex-start à space-evenly), align-items (cinq valeurs incluant baseline), align-content, et un curseur gap de 0 à 64px.
  • Propriétés par élément : flex-grow, flex-shrink, flex-basis, order, align-self, ainsi que des valeurs explicites de width et height. Chaque élément possède sa propre carte, ce qui permet de donner à l'un flex-grow: 1 tout en fixant un autre à un flex-basis défini.

Vous pouvez ajouter jusqu'à 12 éléments et les retirer jusqu'à n'en garder qu'un seul, ce qui suffit largement pour prototyper des barres de navigation, des grilles de cartes et des structures de page complètes.

De l'aperçu au code prêt à copier

À chaque modification d'un contrôle, trois éléments se mettent à jour simultanément : l'aperçu à bordure pointillée, ainsi que les onglets de sortie CSS, Tailwind et HTML brut. Chaque onglet dispose d'un bouton de copie en un clic.

  • L'onglet CSS est la sortie de référence. Il génère une règle .flex-container et une règle numérotée .flex-item-N pour chaque enfant, en omettant les valeurs par défaut comme order: 0 afin de garder un résultat propre.
  • L'onglet Tailwind traduit vos réglages en classes utilitaires — justify-between, items-center, flex-col, etc. — en recourant à des valeurs arbitraires comme gap-[16px] lorsqu'aucune classe utilitaire exacte n'existe.
  • L'onglet HTML brut fournit le balisage correspondant à insérer aux côtés du CSS.

Des préréglages intégrés pour les mises en page courantes

Cinq scénarios prédéfinis chargent une configuration complète et fonctionnelle en un clic, pour étudier une mise en page éprouvée ou partir de quelque chose de proche de votre objectif :

  • Navbar — logo à gauche, liens à droite, avec justify-content: space-between et des éléments centrés.
  • Card Grid — six cartes qui s'enroulent avec flex-wrap: wrap et un flex-basis partagé pour des colonnes responsives.
  • Sidebar Layout — une barre latérale de largeur fixe (flex: 0 0 240px) à côté d'une zone principale flexible.
  • Footer — des colonnes réparties grâce à space-around.
  • Centered — le classique bloc « parfaitement centré » via justify-content: center et align-items: center.

Pourquoi un bac à sable flexbox est utile

Flexbox déroute souvent les gens car les propriétés interagissent entre elles. align-items n'a d'effet que lorsque les éléments sont plus petits que l'axe transversal ; la direction de justify-content s'inverse dès que l'on passe à flex-direction: column ; et flex-grow n'entre en jeu que s'il reste de l'espace libre à répartir. Voir ces règles se dérouler en direct, avec votre propre nombre et taille d'éléments, transforme des notions abstraites en réflexes bien plus vite que la lecture de la spécification. Et comme le résultat produit est du vrai code CSS et Tailwind copiable, et non une simple capture d'écran, ce bac à sable fait aussi office de générateur de code : expérimentez jusqu'à ce que l'aperçu en direct corresponde à votre design, puis collez directement le résultat dans votre projet.