gpt4 book ai didi

html - CSS 网格中的等宽列

转载 作者:技术小花猫 更新时间:2023-10-29 12:56:52 27 4
gpt4 key购买 nike

我希望使用 css 网格让下面的 html 在 n 个相等的列中显示行元素是否有两个、三个或更多子元素 - Flexbox 使这很容易,但我无法使用 css 网格完成它- 任何帮助表示赞赏。

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

最佳答案

长话短说

grid-auto-columns: minmax(0, 1fr);
grid-auto-flow: column;

repeat(3, 1fr) 的常见答案不太正确。

这是因为 1fr 是关于可用(!)空间的分布。一旦内容变得大于轨道大小,这就会中断。默认情况下,它不会溢出并相应地调整列宽。这就是为什么不能保证所有 1fr 的宽度都相等。 1fr 实际上只是 minmax(auto, 1fr) 的简写。

如果您确实需要列的宽度完全,您应该使用:

grid-template-columns: repeat(3, minmax(0, 1fr));

minmax(0, 1fr) 允许网格轨道小至 0 但大至 1fr,创建的列将保持平等。但是,请注意,如果内容大于列或无法换行,这将导致溢出。

这里是 an example这证明了差异。

最后,作为@wegry@zauni指出,要使其适用于任意数量的子列,您可以利用 grid-auto-columnsgrid-auto-flow 并使用它:

grid-auto-columns: minmax(0, 1fr);
grid-auto-flow: column;

关于html - CSS 网格中的等宽列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47601564/

27 4 0
文章推荐: javascript - 仅在 javascript 中获取标记名为
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com