在 Flexbox 中保持 div 的纵横比似乎在 Firefox 中不起作用
Maintaining the aspect ratio of divs inside a flexbox seems to not work in Firefox
我在使用 Firefox 中的 flexboxes 的某些功能时遇到问题。我正在尝试使用 padding-bottom 作为父级的 % 来保持 flexboxes 内 div 的纵横比,它在 Chrome、Opera 和 IE 中工作得非常好。症结在于 Firefox,整个事情似乎都崩溃了。测试包装没有达到应有的高度。
这只是我应该提交给 Mozilla 的边缘案例错误,还是我可以使用 CSS/HTML 解决此问题?我们之前一直使用调整大小的图像来保持纵横比,但加载弹出窗口是不可接受的。我在下面包含了一个问题示例,并在此处制作了一个 jsfiddle:http://jsfiddle.net/sxxbqtnb/2/
.test {
position: relative;
height: auto;
margin: 0 12%;
background-color: transparent;
}
.test-wrap {
width: 100%;
list-style: none;
padding: 0;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.test-inner {
position: relative;
height: 0;
width: 31%;
display: inline-block;
margin: 0 0 150px;
padding-bottom: 18%;
background-color: #666;
}
<div class="test">
<ul class="test-wrap">
<li class="test-inner"></li>
<li class="test-inner"></li>
<li class="test-inner"></li>
</ul>
</div>
*编辑以稍微清理一下我的 css
尝试将 display: flex
添加到最上面的父元素,在本例中为 .test
我也给了.test-inner
height: 100%
。在 FF 34.0.5
中测试
JSFiddle Link
这实际上是 Chrome 中的错误。我使用相同的技术来创建宽高比锁定元素,它在 Chrome 中很好,但在 Firefox 中损坏了。
我向 Mozilla 报告了它,结果证明 Firefox 是正确的,Chrome 有问题。
在顶部或底部方向给定边距或填充的元素应基于父元素的宽度。但是,当父项是 Flex 项目或 Grid 项目时,它应该改为基于高度。
不知道为什么。他们刚刚决定改变它。这是 Chromium 错误报告:https://bugs.chromium.org/p/chromium/issues/detail?id=229568
我希望它只是以某种方式标准化。如果要保持 Firefox 的方式,那么我很想知道一种在 flex 或 grid 项目时创建比率锁定元素的方法。
我在使用 Firefox 中的 flexboxes 的某些功能时遇到问题。我正在尝试使用 padding-bottom 作为父级的 % 来保持 flexboxes 内 div 的纵横比,它在 Chrome、Opera 和 IE 中工作得非常好。症结在于 Firefox,整个事情似乎都崩溃了。测试包装没有达到应有的高度。
这只是我应该提交给 Mozilla 的边缘案例错误,还是我可以使用 CSS/HTML 解决此问题?我们之前一直使用调整大小的图像来保持纵横比,但加载弹出窗口是不可接受的。我在下面包含了一个问题示例,并在此处制作了一个 jsfiddle:http://jsfiddle.net/sxxbqtnb/2/
.test {
position: relative;
height: auto;
margin: 0 12%;
background-color: transparent;
}
.test-wrap {
width: 100%;
list-style: none;
padding: 0;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.test-inner {
position: relative;
height: 0;
width: 31%;
display: inline-block;
margin: 0 0 150px;
padding-bottom: 18%;
background-color: #666;
}
<div class="test">
<ul class="test-wrap">
<li class="test-inner"></li>
<li class="test-inner"></li>
<li class="test-inner"></li>
</ul>
</div>
*编辑以稍微清理一下我的 css
尝试将 display: flex
添加到最上面的父元素,在本例中为 .test
我也给了.test-inner
height: 100%
。在 FF 34.0.5
JSFiddle Link
这实际上是 Chrome 中的错误。我使用相同的技术来创建宽高比锁定元素,它在 Chrome 中很好,但在 Firefox 中损坏了。
我向 Mozilla 报告了它,结果证明 Firefox 是正确的,Chrome 有问题。
在顶部或底部方向给定边距或填充的元素应基于父元素的宽度。但是,当父项是 Flex 项目或 Grid 项目时,它应该改为基于高度。
不知道为什么。他们刚刚决定改变它。这是 Chromium 错误报告:https://bugs.chromium.org/p/chromium/issues/detail?id=229568
我希望它只是以某种方式标准化。如果要保持 Firefox 的方式,那么我很想知道一种在 flex 或 grid 项目时创建比率锁定元素的方法。