有这个标记使用grid:
.wrapper {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}
.wrapper > div {
background: gray;
text-align: center;
margin: 1px;
}
<div class="wrapper">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div>E</div>
</div>
在某些时候,最后两个块会换行到第二行。可以添加什么以使转移的块开始按比例占据 50% 的整个宽度而不诉诸flex?

没有解决方案
flex-*如果您需要适应性,那么最好设置没有固定大小的列。内容大小通常以其容器的相对单位设置。
@media当您使屏幕小于某个值时,您需要添加一种样式,该样式将更改最后两个元素。在示例中,为了清楚起见,我使用了屏幕分割
grid-template-columns: repeat(5, 1fr);,因为。每个元素默认占用 1 列。最好看一个例子CodePen。
当你缩小浏览器窗口时,屏幕会被分成 12 个部分,因为。12 可以被 3 和 2 整除(第一行 - 3 个元素,第二行 - 2 个元素)。最后 2 个元素会到第 2 行并占据其宽度的 6/12(12/2 个元素),而第 1 行的其余元素将平分第 1 行,即 将占据其宽度的 4/12(元素的 12/3)。
另一种选择是使用 flex
这很可能不是您需要的,而是对 flex 行为的模拟