我在Chrome移动版上使用justify-content
的值为space-evenly
时遇到了问题(在桌面和Firefox移动版上运行正常)。
我制作了一个最小化的示例:示例
我的flex容器的方向是横向排列,我想要元素均匀间距,就像使用space-evenly
那样。它在桌面上可以工作,但是在Chrome移动版(Android上的59版本)上,元素被对齐到左侧。这里是两者的比较:比较
center
和space-around
的值可以按预期工作,但我真的想使用space-evenly
或等效的值(flex-wrap:wrap
的行为对我也很重要)。
这是我的HTML代码:
<div class="container">
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
</div>
这是我的 CSS:
.container {
display: flex;
flex-direction: row;
justify-content: space-evenly;
flex-wrap: wrap;
background: lightgrey;
}
.element {
margin: 8px;
width: 42px;
height: 42px;
background: black;
}
提前致谢!
space-evenly
与其他布局选项不同,在浏览器中的支持有限。它是最近才引入的,尚未在移动版Chrome中实现(事实上,大多数移动浏览器都不支持它)。它实际上是首先在网格中实现,然后再移植到flexbox中。当浏览器无法识别此值时,它会回退到flex-start
,这就是您在移动版Chrome上看到的情况。 - Terryspace-evenly
,然后再在其后添加回退选项。未被识别的 === 回退到默认值,即flex-start
。这并不意味着忽略规则。 - Terryspace-evenly
放在前面是错误的,应该放在最后。 - Asons