Maison > interface Web > tutoriel CSS > Comment forcer un emballage cohérent des cartes rendues dynamiquement dans Flexbox ?

Comment forcer un emballage cohérent des cartes rendues dynamiquement dans Flexbox ?

DDD
Libérer: 2024-11-21 06:37:11
original
627 Les gens l'ont consulté

How to Force Consistent Wrapping of Dynamically Rendered Cards in Flexbox?

Gestion des cartes rendues dynamiquement et de l'emballage Flexbox

Dans ce scénario, vous disposez d'une boîte flexible réactive avec des cartes rendues dynamiquement que vous souhaitez envelopper d'une manière spécifique. Voyons comment cela peut être réalisé :

Utilisation d'éléments "fantômes" dans Flexbox

Pour obtenir le comportement souhaité, vous pouvez utiliser la technique consistant à utiliser des éléments "fantômes" à côté de vos cartes habituelles. Ces éléments « fantômes » sont des divs vides ajoutés à la fin du conteneur flexbox. Leur but est d'occuper visuellement l'espace restant et de guider le mécanisme d'emballage de la flexbox.

Par exemple, si vous souhaitez avoir une longueur de colonne possible de 4, vous aurez besoin de 3 éléments "fantômes". Ces éléments imiteraient la largeur et l'espacement de vos cartes habituelles, garantissant que les 2 dernières cartes commencent par le côté gauche et soient réparties de manière égale.

Incorporation d'éléments « fantômes »

<div class="recipe-grid">

  <!-- Regular cards -->
  <div class="card">...</div>
  <div class="card">...</div>
  <div class="card">...</div>
  <div class="card">...</div>

  <!-- "Ghost" elements -->
  <div class="card"></div>
  <div class="card"></div>
  <div class="card"></div>

</div>
Copier après la connexion

Style Considérations pour les éléments « fantômes »

Dans votre CSS, assurez-vous que les éléments « fantômes » ont les éléments suivants style :

.card:empty {
  width: 300px;  <!-- Same width as regular cards -->
  box-shadow: none;
  margin: 2rem;
  padding-bottom: 0;
}
Copier après la connexion

Approche alternative utilisant des pseudo-éléments

Vous pouvez également utiliser des pseudo-éléments CSS pour créer l'effet d'éléments « fantômes ». Cette technique vous permet d'éviter d'utiliser des divs supplémentaires dans le HTML.

.card:nth-child(n+5) {  <!-- Applies to all elements after the 4th child -->
  width: 300px;  <!-- Same width as regular cards -->
  box-shadow: none;
  margin: 2rem;
  padding-bottom: 0;
}
Copier après la connexion

Cette méthode crée efficacement des espaces "fantômes" vides après la 4ème carte, obtenant un résultat visuel similaire à l'approche des éléments "fantômes". Cependant, il est important de noter que cette technique peut ne pas être prise en charge par tous les navigateurs.

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.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal