我想在flexbox中有一个Square div。所以我用:
.outer { display: flex; width: 100%; background: blue; } .inner { width: 50%; background: yellow; padding-bottom: 50%; } <div class="outer"> <div class="inner"> <a>hehe</a> </div> </div>
在Chrome中可以正常使用。但是在Firefox中,父级只压缩一行。
如何在Firefox中解决此问题?我使用版本44。
更新
flexbox规范已更新。
4.2。 Flex项目边距和填充
弹性项目(如方块框上的项目)的边距和填充百分比将根据其包含的块的内联大小进行解析,例如,在水平书写模式下,左/右/上/下百分比均根据其包含的块的宽度进行解析。
原始答案-适用于2018年之前发布的FF和Edge版本
根据 flexbox规范:
作者应避免在弹性项目的填充或边距中完全使用百分比,因为它们在不同的浏览器中会出现不同的行为。
还有更多:
可以根据以下任一条件解决弹性项目上的边距和填充百分比:
用户代理必须选择以下两种行为之一。
注意:这种差异很糟,但是可以准确地捕获当前的状态(实现之间没有共识,CSSWG内部也没有共识)。CSSWG的意图是浏览器将集中于其中一种行为,届时将对规范进行修订。