在这种情况下,您有一个响应式 Flexbox 框,其中包含要以特定方式包裹的动态渲染的卡片。让我们分解一下如何实现这一点:
要实现所需的行为,您可以采用将“幽灵”元素与常规卡片一起使用的技术。这些“幽灵”元素是添加到 Flexbox 容器末尾的空 div。它们的目的是在视觉上占据剩余空间并引导 Flexbox 包装机制。
例如,如果您希望可能的列长度为 4,则需要 3 个“幽灵”元素。这些元素将模仿常规卡片的宽度和间距,确保最后 2 张卡片从左侧开始并均匀分布。
<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>
在 CSS 中,确保“ghost”元素具有以下内容样式:
.card:empty { width: 300px; <!-- Same width as regular cards --> box-shadow: none; margin: 2rem; padding-bottom: 0; }
或者,您可以使用 CSS 伪元素来创建“幽灵”元素的效果。这种技术可以让您避免在 HTML 中使用额外的 div。
.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; }
此方法有效地在第四张卡片之后创建空的“幽灵”空间,实现与“幽灵”元素方法类似的视觉结果。但是,需要注意的是,并非所有浏览器都支持此技术。
以上是如何在 Flexbox 中强制动态渲染卡的一致包装?的详细内容。更多信息请关注PHP中文网其他相关文章!