【发布时间】:2021-07-17 01:23:15
【问题描述】:
我正在尝试让最后一个网格项填充 CSS 网格中的所有空列,该网格具有自动适合包装项的功能。
我读过Expand a div to fill the remaining width 和Make last element take remaining width with wrapping (and with IE9 support),但他们没有回答动态包装网格的情况,因为它们是为float 和display: block 制作的,因为它们是这里的重要部分。
因此,例如,如果网格项被包裹在一个新行中,我希望它伸展以占用所有空白空间。
如果您查看代码,那么 7 号 div 应该始终占据行中的所有空白空间。我已经设法破解了一些看起来不够强大的东西,使用 100vw 有没有更好的方法?
对于以下示例:调整窗口大小以查看项目换行到下一行:
* {
box-sizing: border-box;
}
.grid-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
}
.grid-element {
background-color: deepPink;
padding: 20px;
color: #fff;
border: 1px solid #fff;
}
.grid-element:last-of-type {
/*width: 100vw;*/ /* Is there a better way? */
}
body {
padding: 2em;
}
hr {
margin: 80px;
}
<div class="grid-container">
<div class="grid-element">
1
</div>
<div class="grid-element">
2
</div>
<div class="grid-element">
3
</div>
<div class="grid-element">
4
</div>
<div class="grid-element">
5
</div>
<div class="grid-element">
6
</div>
<div class="grid-element">
7
</div>
</div>
【问题讨论】:
-
用 CSS-Grid 真的不可能,你需要 flexbox
-
同意上述观点,但链接如下:css-tricks.com/snippets/css/a-guide-to-flexbox/…
-
你能给出灵活的答案吗?
-
不幸的是,问题已关闭,尽管它是 NO 重复的,因为链接的问题没有回答包装项目的情况。但是我每次尝试重新打开错误的已关闭问题都没有成功......
-
@biberman 如果您认为某个问题未正确关闭,请将其发布到StackOverflow Meta。在 cmets 中投诉不会重新提出问题。