Maison > interface Web > tutoriel CSS > Création de dispositions flexibles avec Flexbox

Création de dispositions flexibles avec Flexbox

William Shakespeare
Libérer: 2025-02-10 11:01:08
original
730 Les gens l'ont consulté

Creating Flexible Layouts with Flexbox

Flexbox: une puissance de mise en page CSS

Flexbox, ou le module de mise en page Flexible CSS, simplifie la disposition unidimensionnelle - obstruant les éléments en ligne ou en colonne. L'application de display: flex (ou display: inline-flex) à un conteneur transforme ses enfants directs en éléments flexibles, régis par des règles Flexbox. Cela rationalise le codage de divers motifs d'interface utilisateur, comme des formes flexibles ou un centrage vertical. Choisissez Flexbox plutôt que la grille lors de l'alignement des éléments horizontalement ou verticalement, mais pas les deux; La grille excelle à des arrangements bidimensionnels (lignes et colonnes).

Flexbox Fundamentals

Avant la grille CSS, Flexbox a régné Suprême pour les dispositions à axe unique (lignes ou colonnes en utilisant flex-direction: row ou column). Ajouter simplement display: flex à un conteneur initie un contexte de formatage flexible pour ses enfants. Remarque: les navigateurs plus âgés peuvent nécessiter des préfixes de fournisseurs comme -webkit-flex ou -moz-flex.

L'image ci-dessous illustre comment les enfants directs d'un conteneur flexible deviennent des éléments flexibles. Il peut s'agir d'éléments ou de nœuds de texte non vides. Sans plus de style, les éléments ont une hauteur égale (basée sur les plus hautes), empiler horizontalement (ou verticalement dans les modes d'écriture verticale) et n'ont pas d'espacement. Ils pourraient même déborder le conteneur.

Creating Flexible Layouts with Flexbox

Applications pratiques de Flexbox

Flexbox simplifie les dispositions complexes. Considérez ces exemples:

1. Composant d'objet multimédia:

Un objet multimédia traditionnel (image à côté du texte) a précédemment requis des flotteurs et des hacks clearfix. Flexbox élimine ceci:

.media__object { display: flex; }
.media__object img { margin-right: 20px; }
Copier après la connexion
Copier après la connexion

Ce code concis obtient le même résultat, en s'adaptant dynamiquement aux tailles d'image.

2. Composants de forme flexible:

La création de formes réactives est sans effort avec Flexbox. La flex snuls property (combinant flex-grow, flex-shrink et flex-basis) contrôle le dimensionnement des éléments:

div { display: flex; }
input[type="text"], button { border: 0; font: inherit; }
input[type="text"] { flex: 1 0 auto; } /* Expands to fill space */
button { background: #003; color: whitesmoke; display: block; text-align: center; flex: 0 0 150px; } /* Fixed width */
Copier après la connexion

l'entrée se développe, tandis que le bouton reste un 150px fixe. N'oubliez pas que les valeurs flex-grow et flex-shrink sont proportionnelles.

Creating Flexible Layouts with Flexbox Creating Flexible Layouts with Flexbox

3. Centering vertical:

Le contenu de centrage verticalement est simplifié avec align-items: center:

.flex-container { display: flex; align-items: center; }
Copier après la connexion

Ce centre fléchit les éléments dans leur conteneur.

Creating Flexible Layouts with Flexbox

4. Disposages en forme de grille:

Bien que la grille soit idéale pour les grilles, Flexbox peut créer des dispositions adaptables en utilisant flex-wrap: wrap et ajuster flex-basis et flex-grow:

.media__object { display: flex; }
.media__object img { margin-right: 20px; }
Copier après la connexion
Copier après la connexion

Creating Flexible Layouts with Flexbox

Flexbox vs Grid: Choisir le bon outil

Utiliser la grille pour les dispositions bidimensionnelles; Utilisez Flexbox pour les dispositions à axe unique nécessitant un alignement horizontal ou vertical, mais pas les deux. Souvent, les projets combinent les deux techniques de résultats optimaux.

Apprentissage plus approfondi: Consultez "un guide complet de Flexbox" de CSS-Tricks et d'autres ressources pour une plongée plus profonde dans les capacités Flexbox.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal