gpt4 book ai didi

html - 不考虑列数和列宽

转载 作者:行者123 更新时间:2023-11-28 00:52:30 25 4
gpt4 key购买 nike

问题

使用 CSS column-property 在页面上创建列我注意到布局引擎的一些奇怪行为。即,我正在使用

body {
padding: 0;
background-color: black;
margin: 0;

column-width: 308px;
column-gap: 0;
column-rule: none;
line-height: 0;
}

这样每一列的宽度都应该是 308 像素。我的演示页面看起来非常正常,除了以大约 2400 像素的宽度查看时。然后它看起来像这样:

2400px

请注意最后一列中的大黑色空间。我的数学告诉我 2400/308 = 7.79 > 7。人们会期望在 2400 像素的视口(viewport)宽度处出现七列。然而,布局引擎只使用了六个。这种行为在 chrome 和 firefox 之间是一致的,甚至在将 column-width: 308px 替换为 column-count: 7 时仍然存在。

问题

我想知道是什么原因导致浏览器忽略正是这个宽度的第 7 列。有没有办法避免这种行为?

代码

可以使用以下来源或 this fiddle 重现该问题

body {
padding: 0;
background-color: black;
margin: 0;
column-width: 308px;
column-gap: 0;
column-rule: none;
line-height: 0;
}

img {
margin: 12px;
padding: 9px;
border: 1px solid darkgrey;
background-color: white;
display: inline-block;
width: 264px;
}

.w {
height: 176px;
}

.h {
height: 396px;
}
<img class="w">
<img class="w">
<img class="h">
<img class="w">
<img class="w">

<img class="w">
<img class="w">
<img class="w">
<img class="w">
<img class="h">

<img class="w">
<img class="w">
<img class="w">
<img class="w">
<img class="h">

<img class="w">
<img class="w">
<img class="h">
<img class="w">
<img class="w">

<img class="w">
<img class="w">
<img class="w">
<img class="w">
<img class="h">

<img class="w">
<img class="w">
<img class="w">
<img class="w">
<img class="h">

最佳答案

几天前我在这里回答了一个类似的问题:https://stackoverflow.com/a/46412808/5641669

不过,我想补充一点:

如果容器的高度不固定,则元素/文本在列中的分布始终取决于第一列的高度。在您的情况下,如果第一列中的最后一项将移至第二列,则其他列的高度将降低(因为它们会根据第一列调整高度),因此这些元素总共不适合 7列 -> 不可能。

因此第四项被放入第一行,使所有项都符合 column-count 定义的列数。在这种情况下,这会导致只有 6 列包含元素,但有 7 列。

正如我之前所写,整个容器的高度将始终取决于第一列(即,如果高度不固定)。其余列将根据该高度填充(它们不会比第一列高),如果元素到其余列,则不会根据均匀分布。因此,有时结果可能是像您这样的情况,最后一列仍然是空的。

关于html - 不考虑列数和列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46571803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com