【发布时间】:2020-01-14 21:15:54
【问题描述】:
我想要达到的效果是这样的:
起初,我尝试使用flex 来实现这一点,但后来我意识到对于 红色框 来说是不可能的,因为 flex 是一维的。
现在我正在尝试弄清楚如何使 蓝色框 自动 填充看起来 @987654324 的剩余空间@ 非常适合这项工作,但在 grid 中不可行。
- 是否可以使用网格实现蓝框?怎么样?
- 如果不行,那么是否可以用flex实现红框?如何? (第 4 个图块占用两行。)
我现在想的是使用grid 并为红色框留一个空白空间,并用单独的元素填充它。但我认为这是一个肮脏的把戏,棘手的部分是瓷砖是使用循环动态生成的。我正在使用ul li
#container{
display: grid;
grid-template-columns: auto auto auto;
grid-column-gap:2px;
grid-row-gap:2px;
width: 180px;
list-style:none;
}
.item{
height: 60px;
width: 60px;
background: grey;
}
<ul id="container">
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
</ul>
编辑:很抱歉造成混乱,也许不清楚,但我想要的是最后一个图块将填充剩余空间。我知道我可以,具体使用它将在
grid中占据的列,但我想要的是flex-grow的行为,它将占用剩余空间。蓝色瓷砖不一定在 3-5 列位置。瓦片的数量是动态的。
【问题讨论】:
-
你想放大红框吗?
-
@ManojKumar 更有可能,不确定这是否是正确的术语,但我希望第 4 个图块的大小为 2x2