【发布时间】:2016-02-03 19:36:28
【问题描述】:
我正在尝试为 display:flex 元素内的元素添加填充。当填充定义为百分比时,它不会在 Firefox 中显示,但在 px 中定义时会显示。这两种情况在 Chrome 中都按预期工作。
div {
background: #233540;
}
div > div {
color: #80A1B6;
}
.parent {
display: flex;
}
.padded {
padding-bottom: 10%;
}
<div class="parent">
<div class="padded">
asdf
</div>
</div>
铬:
火狐:
编辑: 这可能是因为 Mozilla 决定根据父容器的高度来解释垂直百分比。对我来说似乎很疯狂。 https://bugzilla.mozilla.org/show_bug.cgi?id=851379
编辑 2: 是的,似乎规范实际上将垂直填充和边距定义为根据容器的高度解析,所以也许 Chrome 是不遵守规范的? https://drafts.csswg.org/css-flexbox/#item-margins
【问题讨论】:
-
RE:编辑 2:实际上,规范将其定义为浏览器可以选择使用高度或宽度作为顶部/底部边距/填充,只要它们一致并且始终使用其中一个适用于所有情况。因此,Firefox 和 Chrome 都在遵守规范。
-
最佳答案可能也是遵循当前规范:“作者应避免在弹性项目的填充或边距中完全使用百分比,因为它们在不同的浏览器中会出现不同的行为。”