


Un guide de l'algorithme de placement automatique dans la grille CSS
Ce tutoriel détaille l'algorithme de placement automatique du module de mise en page CSS, qui positionne les éléments basés sur la propriété grid-auto-flow
. Les articles précédents couvraient les bases de la grille CSS, mais celle-ci se concentre sur l'algorithme lui-même, expliquant comment les éléments se retrouvent dans leurs positions finales.
Concepts clés:
- L'algorithme de placement automatique, régi par
grid-auto-flow
(défautant versrow
), positionne les éléments de la grille. - Il gère les éléments de grille anonymes (texte non style directement dans le conteneur de la grille).
- Les éléments explicitement positionnés (en utilisant
grid-area
) sont placés en premier. - Éléments avec des positions de ligne définies mais les positions des colonnes non définies sont placées ensuite, en utilisant des emballages clairsemés (par défaut) ou denses.
- L'algorithme détermine le nombre de colonnes de la grille implicite, se développant au besoin pour accueillir des éléments avec des positions de colonne spécifiques ou de grandes portées.
- Enfin, les éléments restants sont positionnés en fonction de
grid-auto-flow
, en utilisant un curseur de placement automatique qui commence au niveau supérieur à gauche de la grille implicite.
Comprendre l'algorithme:
Avant de plonger, comprenez ces concepts de base:
- Éléments de grille anonymes: Le texte dans le conteneur de la grille, non enveloppé dans des balises, devient un élément de grille anonyme. Il ne peut pas être stylé directement mais hérite des styles de parents. Whitespace ne crée pas d'articles anonymes.
- Cridine de la grille: Sauf si spécifiée, la grille s'étend par défaut à 1 (une cellule).
- Grille implicite: La grille définie par
grid-template-rows
,grid-template-columns
, etgrid-template-areas
est la grille explicite. La grille implicite s'étend au-delà de cela pour accueillir les articles placés à l'extérieur de ses limites.
L'explication suivante suppose grid-auto-flow: row
. Pour grid-auto-flow: column
, échangez "Row" et "Colonne" dans les descriptions.
Étape 1: Génération anonyme de la grille:
L'algorithme commence par créer des éléments de grille anonymes à partir de n'importe quel texte directement dans le conteneur de la grille. Ce sont des styles de parent non stytyables mais hérités.
Étape 2: Placer des éléments positionnés explicitement:
Les éléments avec des positions définis explicitement à l'aide de grid-area
sont placés en premier. L'algorithme utilise les valeurs grid-area
(la ligne de démarrage, la colonne de démarrage, la ligne de fin, la colonne de fin) pour déterminer leur emplacement.
Étape 3: Placement des éléments avec une ligne de réglage, des positions de colonne non définies:
Ensuite, des éléments avec des positions spécifiées grid-row-start
et grid-row-end
(mais pas des positions de colonne) sont placées. L'algorithme utilise un emballage clairsemé ou dense:
-
Emballage clairsemé (par défaut): L'élément est placé dans la plus ancienne colonne disponible sans chevaucher les éléments existants. Il ne considère que les éléments placés à cette étape , pas des étapes antérieures.
-
Emballage dense (
grid-auto-flow: row dense
): L'élément est placé dans la première colonne disponible, même si cela signifie le placer avant d'autres éléments dans la même ligne qui ont été placés dans cette étape.
(clairsemé)
(dense)
Étape 4: Déterminer le nombre implicite de colonne de grille:
L'algorithme détermine le nombre de colonnes de la grille implicite:
- commence par le nombre de colonnes de la grille explicite.
- ajoute des colonnes pour accueillir des éléments avec des positions de colonne définies.
- Ajoute des colonnes si la plus grande portée de colonne parmi les éléments restants dépasse la largeur de la grille implicite actuelle.
Étape 5: Placer les éléments restants:
Le curseur de placement automatique (initialement en haut à gauche) est utilisé pour positionner les éléments restants. Le mode d'emballage (clairsemé ou dense) affecte le placement:
-
Emballage clairsemé: Le curseur se déplace à travers les colonnes jusqu'à ce qu'une position non chevauchante soit trouvée. Si aucun espace n'est trouvé dans la ligne actuelle, il se déplace vers la ligne suivante.
-
Emballage dense: Le curseur se réinitialise au haut à gauche de la grille implicite pour chaque élément, trouvant la première position non chevauchante disponible.
(clairsemé)
(dense)
Conclusion:
Cette procédure détaillée clarifie l'algorithme de placement automatique de la grille CSS. Expérimentez avec différentes dispositions pour solidifier votre compréhension. La section FAQS du texte d'origine a été omise par concision, car l'explication de l'algorithme de base est déjà assez complète.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











Ce programme pilote, une collaboration entre le CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal et ACTUTIE, rationalise ARM64 CI / CD pour les projets GitHub CNCF. L'initiative répond aux problèmes de sécurité et aux performances LIM

Ce tutoriel vous guide dans la création d'un pipeline de traitement d'image sans serveur à l'aide de services AWS. Nous allons créer un frontend Next.js déployé sur un cluster ECS Fargate, en interagissant avec une passerelle API, des fonctions lambda, des seaux S3 et DynamoDB. Ème

Restez informé des dernières tendances technologiques avec ces meilleurs bulletins de développeur! Cette liste organisée offre quelque chose pour tout le monde, des amateurs d'IA aux développeurs assaisonnés du backend et du frontend. Choisissez vos favoris et gagnez du temps à la recherche de rel

Le développement de logiciels de télécommunications personnalisés est sans aucun doute un investissement considérable. Cependant, à long terme, vous pouvez réaliser qu'un tel projet peut être plus rentable car il peut augmenter votre productivité comme toute solution prête à l'emploi sur le marché. Comprendre les avantages les plus importants de la construction d'un système de télécommunications personnalisé. Obtenez les fonctionnalités exactes dont vous avez besoin Il y a deux problèmes potentiels avec le logiciel de télécommunications standard que vous pouvez acheter. Certaines manquent de fonctionnalités utiles qui peuvent améliorer considérablement votre productivité. Parfois, vous pouvez les améliorer avec une certaine intégration externe, mais cela ne suffit pas toujours pour les rendre excellents. D'autres logiciels ont trop de fonctions et sont trop compliqués à utiliser. Vous n'en utilisez probablement pas (jamais!). Un grand nombre de fonctionnalités ajoute généralement au prix. En fonction de vos besoins

Puzzles CI / CD et solutions pour les logiciels open source dans l'architecture ARM64 Le déploiement de logiciels open source sur l'architecture ARM64 nécessite un environnement CI / CD puissant. Cependant, il existe une différence entre les niveaux de soutien des architectures de processeur ARM64 et traditionnelles x86, qui sont souvent désavantagées. Les développeurs de composants d'infrastructure pour plusieurs architectures ont certaines attentes pour leur environnement de travail: Cohérence: les outils et méthodes utilisés sur les plateformes sont cohérents, évitant la nécessité de modifier le processus de développement en raison de l'adoption de plateformes moins populaires. Performances: La plate-forme et le mécanisme de support ont de bonnes performances pour garantir que les scénarios de déploiement ne sont pas affectés par une vitesse insuffisante lors de la prise en charge de plusieurs plates-formes. Couverture de test: efficacité, conformité et
