Introduction
Ceci est une démonstration simple de la façon dont vous pouvez créer des grilles simples avec des rangées alternées. Dans cet exemple, vous avez une ligne avec trois éléments et une ligne avec deux.
Il s'agit d'une solution 100 % CSS et se résume à utiliser @property pour la valeur span de la propriété grid-columns.
Comment ça marche
Eh bien, c'est simple. Vous devez savoir combien de lignes différentes il y aura et combien d'éléments au total ces différentes lignes contiennent.
Dans mon exemple, ce serait :
- 2 lignes différentes
- 3 articles 2 articles = 5 articles
Cela signifie que lorsque vous effectuez le sélecteur :nth-child(), vous devez utiliser ce nombre total :
&:nth-child(5n - 4), &:nth-child(5n - 4) ~ &:is(:nth-child(5n - 3), :nth-child(5n - 2)) { --col-span: 4; } &:nth-child(5n - 1), &:nth-child(5n - 1) ~ &:nth-child(5n) { --col-span: 6; }
La propriété personnalisée col-span est utilisée comme ceci :
.item { ... grid-column: span var(--span-cols); grid-row: span var(--span-rows); ... }
Et c'est à peu près tout. C'est super simple, rien de bien grave, mais quand même utile à tout le monde.
Une solution plus conviviale mais plus complexe
Pour une solution plus conviviale, j'ai pensé à déclarer le nombre réel d'éléments au lieu de modifier l'étendue, car si vous modifiez le nombre de colonnes dans une grille, mais oubliez d'ajuster les étendues, vous obtenez un effet indésirable. C'est pourquoi j'ai ajouté une autre propriété personnalisée et je l'ai modifiée à la place.
La partie la plus malheureuse, quelle que soit la solution choisie, le sélecteur de nième enfant doit être modifié manuellement, ou via JavaScript, si vous souhaitez une solution entièrement dynamique. (Vous pouvez également utiliser SASS/SCSS, ce qui est évidemment aussi un bon moyen)
La propriété nouvellement ajoutée ressemble à ceci :
@property --row-items { syntax: "<integer>"; inherits: false; initial-value: 1; } </integer>
Pour les éléments vous pouvez modifier la valeur de la propriété --row-items
&:nth-child(5n - 4), &:nth-child(5n - 4) ~ &:is(:nth-child(5n - 3), :nth-child(5n - 2)) { --row-items: 3; } &:nth-child(5n - 1), &:nth-child(5n - 1) ~ &:nth-child(5n) { --row-items: 2; }
Et les span-cols sont désormais calculés directement sur la classe .item, au lieu de sélectionner x.
.item { --span-cols: calc(var(--grid-cols) / var(--row-items)); grid-column: span var(--span-cols); grid-row: span var(--span-rows); }
Pour référence, les propriétés personnalisées des colonnes et des lignes sont déclarées comme suit :
@property --grid-cols { syntax: "<integer>"; inherits: false; initial-value: 12; } @property --grid-rows { syntax: "<integer>"; inherits: false; initial-value: 12; } </integer></integer>
Conclusion
J'espère que cela vous aidera à comprendre comment faire fonctionner ce type de grille.
Si vous trouvez des erreurs ou si vous avez des commentaires à me faire, écrivez un commentaire sur cet article !
Merci et je vous souhaite un bon week-end,
Kuraikari
Stylo original
Le stylo avec la propriété items
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!

Cet article est basé sur la présentation de Brian sur Connect.tech 2019. Les diapositives avec des notes de conférencier de cette présentation sont disponibles en téléchargement.

Au cours de cette semaine, DuckDuckgo obtient un chiffrement plus intelligent, une lutte contre la vente de domaines Dot Org et un nouveau moteur de navigateur est en préparation.

Il y a eu une série d'outils, d'articles et de ressources sur la couleur récemment. Veuillez me permettre de fermer quelques onglets en les rassemblant ici pour votre plaisir.

Robin a déjà couvert cela, mais j'ai entendu une certaine confusion au cours des dernières semaines et j'ai vu une autre personne prendre un coup de poing pour l'expliquer, et je voulais

J'adore la conception du site Sandwich. Parmi les nombreuses caractéristiques belles figurent ces titres avec des soulignements arc-en-ciel qui se déplacent lorsque vous faites défiler. Ce n'est pas

De nombreux conceptions de CV populaires tirent le meilleur parti de l'espace de page disponible en disant des sections en forme de grille. Utilisons la grille CSS pour créer une disposition qui

Les recharges de page sont une chose. Parfois, nous actualisons une page lorsque nous pensons que cela ne répond pas, ou croyons que un nouveau contenu est disponible. Parfois, nous sommes juste en colère contre

Il y a très peu de conseils sur la façon d'organiser des applications frontales dans le monde de la réaction. (Déplacez simplement les fichiers jusqu'à ce qu'il «se sent bien», LOL). La vérité


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

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

Dreamweaver Mac
Outils de développement Web visuel

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

Dreamweaver CS6
Outils de développement Web visuel