【发布时间】:2018-01-04 10:29:23
【问题描述】:
我正在学习 CSS Grid 并尝试重现一些 flex 行为(我知道两者是互补的,这是一个学习练习)。
下面的 flex 示例允许堆叠未定义数量的 divs(未定义,因为它们的数量不会影响 CSS 部分)
#flex {
height: 100px;
display: flex;
flex-direction: row;
}
#flex > div {
background-color: blue;
}
<div id="flex">
<div>a</div>
<div>b</div>
<div>c</div>
</div>
我尝试将其移植到 CSS Grid 实现:
/* updated with correct comment delimiters, thanks @vals */
#grid {
height: 100px;
display: grid;
grid-auto-flow: column; /* when something has to be added, be it a column */
grid-auto-columns: fit-content; /* when a new column is added, its size will be driven by the content. Unfortunately this does not work yet but never mind for now */
grid-row: auto; /* one row, auto-sized */
}
#grid > div {
background-color: lime;
}
<div id="grid">
<div>a</div>
<div>b</div>
<div>c</div>
</div>
单元格的宽度不符合预期(每个 cmets)这一事实是我稍后会调查的,我的主要问题是有三个额外的列,在每个预期的列之前一个强>。
在检查网格时,我可以看到有些线条是平淡的,而另一些则是点状的(我不确定这是否表明某种东西):
空白是额外的列吗?
- 如果是:它们来自哪里?
- 如果不是:它们是某种填充,那么为什么列不占用所有可用空间?
【问题讨论】:
-
` 网格自动列:适合内容; ` 不存在你的意思是
grid-auto-columns: max-content;看起来也一样:) grid-row: auto 也不存在 -
不知道为什么,但您的 HTML 中有 nbsp。删除它们就可以了。
-
@Doomenik:谢谢,是的,我想到了
max-content(但fit-contentexists:developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-columns)。还存在grid-row: auto(developer.mozilla.org/en-US/docs/Web/CSS/grid-row)