【发布时间】:2018-02-14 05:13:09
【问题描述】:
.page {
width: 90% margin: auto;
}
.row-container {
width: 100%;
display: flex;
}
.item-container {
flex: 1;
padding: 16px;
}
.item-container-2x {
flex: 2;
}
.item {
background-color: #e7e8e9;
height: 50px;
border: 1px solid #dddddd;
}
<div class="page">
<div class="row-container">
<div class="item-container">
<div class="item"></div>
</div>
<div class="item-container">
<div class="item"></div>
</div>
<div class="item-container">
<div class="item"></div>
</div>
</div>
<div class="row-container">
<div class="item-container item-container-2x">
<div class="item"></div>
</div>
<div class="item-container">
<div class="item"></div>
</div>
</div>
</div>
这里的问题在于填充。它会导致第二行的网格错位。
我将flex: 1; 用于等宽网格项目,flex: 2; 在旁边使用flex: 1; 用于第二行。我的理解是弹性数字加起来。我试图将它们添加到 3,但在第二行中,两个网格项目之间只有一个边距会影响间距。我不确定这种方法是否比为网格项目定义可变宽度更好,但使用 flex 对我来说似乎很简单。
我认为还有一个问题是我使用16px 的固定填充和flex: 1/2 的可变宽度。我确实尝试了百分比保证金,但仍然遇到同样的问题。而且我很难理解需要使用填充和边距的组合,甚至可能是负边距。
感谢您的帮助。
【问题讨论】:
-
CSS Grid 排水沟解决方案:stackoverflow.com/a/48755146/3597276
-
@Michael_B 为什么你不关闭它:)
-
@TemaniAfif,因为我不能 100% 确定这个问题是骗人的。审查足以使关联,但不足以关闭。随意继续。
-
@TemaniAfif 在那个欺骗性的速记
flex-grow被使用,它给出了另一个结果,而不是速记flex会,因此它并不完全相同。这里的问题是由 Flexbox 计算 剩余空间 在使用填充的弹性项目上更复杂的方法引起的。