首页  >  文章  >  web前端  >  如何在 CSS 网格中实现精确相等的列宽?

如何在 CSS 网格中实现精确相等的列宽?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-06 09:11:03869浏览

CSS 网格中的精确相等的列宽

在 CSS 网格中创建相等大小的列可能看起来很简单,但它需要特定的方法。虽然 Flexbox 通过其 flex-basis 属性提供了一个简单的解决方案,但 CSS Grid 需要更精确的配置。

挑战:

给定如下 HTML 结构:

<code class="html"><div class="row">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
</div></code>

目标是在相等的列中显示这些元素,无论行内的子元素有多少。

解决方案:

常见的Repeat(3, 1fr) 的方法是不够的,因为 1fr 分配可用空间而不是强制执行严格的列相等。如果内容超出轨道大小,它不会自动调整,可能会导致列宽不均匀。

要实现完全相等的列宽,请使用以下 CSS 属性:

<code class="css">grid-template-columns: repeat(3, minmax(0, 1fr));</code>

解释:

minmax(0, 1fr) 允许网格轨道小至 0,大至 1fr。这确保了列保持相等。但是,请小心,因为如果内容大于列或无法换行,可能会导致溢出。

请考虑以下示例来说明差异:

<code class="css">.equalColumns {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.minmaxEqualColumns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}</code>

equalColumns带有重复(3, 1fr):

EqualColumns result

minmaxEqualColumns 带有重复(3, minmax(0, 1fr)):

MinmaxEqualColumns result

以上是如何在 CSS 网格中实现精确相等的列宽?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn