Maison > interface Web > tutoriel CSS > Comment obtenir un remplissage de grille semblable à un serpent à l'aide d'une grille CSS ?

Comment obtenir un remplissage de grille semblable à un serpent à l'aide d'une grille CSS ?

Susan Sarandon
Libérer: 2024-10-24 03:23:02
original
642 Les gens l'ont consulté

How to Achieve Snake-Like Grid Filling Using CSS Grid?

Utilisation d'une grille CSS pour un remplissage de grille semblable à un serpent

Dans les grilles CSS, la propriété grid-auto-flow contrôle la disposition des éléments de la grille. Pour obtenir un motif de remplissage en forme de serpent dans une grille basée sur des colonnes, nous pouvons exploiter cette propriété.

Considérons le scénario suivant dans lequel nous avons une grille à 3 lignes et souhaitons remplir les cellules en forme de serpent. manière :

<code class="css">01 06 07 12
02 05 08 11
03 04 09 10</code>
Copier après la connexion

Pour y parvenir, nous pouvons définir grid-auto-flow: column dense;. Cela remplira d'abord les colonnes de la grille, avant de passer à la ligne suivante. Pour décaler la deuxième ligne, nous pouvons utiliser le sélecteur de nième enfant pour pousser des éléments spécifiques vers la ligne 2 comme :

<code class="css">.container .div:nth-child(6n + 5) { grid-row: 2; }</code>
Copier après la connexion

Pour déplacer les éléments de la troisième ligne, nous pouvons utiliser :

<code class="css">.container .div:nth-child(6n + 4) { grid-row: 3; }</code>
Copier après la connexion

En combinant ces techniques, nous obtenons le motif de remplissage en forme de serpent souhaité dans un système de grille basé sur des colonnes.

Exemple de code

Voici un exemple fonctionnel qui démontre la mise en œuvre :

<code class="html"><div class="container">
  <div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
</div></code>
Copier après la connexion
<code class="css">.container {
  display: grid;
  grid-template-rows: 20px 20px 20px;
  grid-auto-columns: 20px;
  grid-auto-flow: column dense;
}

.container > div:nth-child(6n + 4) { grid-row: 3; }
.container > div:nth-child(6n + 5) { grid-row: 2; }

/* Irrelevant Styles */
.container {
  grid-gap: 5px;
  counter-reset: num;
  margin: 10px;
}

.container > div {
  border: 1px solid;
}
.container > div:before {
  content: counter(num);
  counter-increment: num;
}</code>
Copier après la connexion

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!

source:php
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