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
DDDoriginal
2024-11-21 06:37:11629parcourir

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>

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;
}

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;
}

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!

Déclaration:
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