【发布时间】:2014-07-06 05:52:48
【问题描述】:
我有一个包含两个项目的 flexbox 布局。其中之一使用 padding-bottom :
#flexBox {
border: 1px solid red;
width: 50%;
margin: 0 auto;
padding: 1em;
display: flex;
flex-direction: column;
}
#text {
border: 1px solid green;
padding: .5em;
}
#padding {
margin: 1em 0;
border: 1px solid blue;
padding-bottom: 56.25%; /* intrinsic aspect ratio */
height: 0;
}
<div id='flexBox'>
<div id='padding'></div>
<div id='text'>Some text</div>
</div>
调整页面大小时的蓝色元素maintains its aspect ratio according to its width。 这适用于 Chrome 和 IE,看起来像:
但是,在 Firefox 和 Edge 中,我得到以下信息(它忽略了蓝色框上的填充,这是保持纵横比的原因):
我对 flexbox 太陌生了,无法真正理解这是否应该工作。 flexbox 的全部意义在于调整大小,但我不确定为什么它会忽略内部填充,并将绝对大小放在蓝色元素上。
我想最终我什至不确定 Firefox 或 Chrome 是否在做正确的事情!任何 Firefox flexbox 专家可以提供帮助吗?
【问题讨论】:
-
以上解释很有帮助。对于进一步的上下文和解释,我推荐 Smashing Magazine 的“使嵌入式内容在响应式 iFrame 中工作”(smashingmagazine.com/2014/02/…)。本文提供了清晰、简洁的背景说明为什么这种填充和 div 包装器解决方案有效。
标签: css padding flexbox aspect-ratio