【发布时间】:2019-08-07 19:24:13
【问题描述】:
虽然我还没有找到答案,但问题很简单:有没有办法, 除了蛮力, 计算响应式网格中的列数?
#grid-container {
width: 100%;
height: 85%;
position: relative;
padding: var(--gap); /* adjusted with JS to make var(--gap) responsive */
display: grid;
grid-gap: var(--gap); /* adjusted with JS to make var(--gap) responsive */
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
box-sizing: border-box;
background: skyblue;
}
.grid-item {
width: 100%;
min-width: 120px;
max-width: 450px;
height: ; /* adjusted with JS on resize events to roughly maintain proportions */
min-height: 192px;
border-radius: 10px;
background: #333;
}
我问的原因是因为我给网格项目一个max-width,这会在最后一个断点处导致巨大的间隙,我希望能够检测到它而不是设置显式媒体查询。
【问题讨论】:
-
你已经设置了
max-width: 450px,但是在最后一个断点你想让它超过这个值吗? -
如果你增加
grid-gap,你可以看到在其他断点中你也会开始看到这个gap...考虑删除max-width? -
@kukkuz 我只是希望能够计算在任何给定时间显示的列数,而无需创建一些复杂的算法
-
我可能完全误解了这一点,但您不只是在寻找
:last-child选择器吗?或者您是否明确需要列的数量?如果是这样并且您的#grid-container中只有列,您可以使用childNodes property -
@Evochrome 你太离谱了,哈哈。在响应式网格中,例如我的问题中的网格,列数会随着您调整窗口大小而增加或减少。在不创建一些蛮力算法的情况下,我要做的就是能够知道在任何给定时间显示了多少列。另外,
childNodes只会返回一个子节点数组??
标签: javascript css css-grid grid-layout