Rob*_*ith 8 html css firefox google-chrome flexbox
在使用基于flexbox容器的布局减少视口后,我注意到了一个小差异.以下代码段包含两个容器(.container和.subcontainer)内的一些链接.在Chrome(45 beta)中,element无论视口尺寸如何,具有类的div 都具有相同的宽度.但是,在Firefox(40)中,每个div的宽度根据其内容而变化.
html,
body {
margin: 0;
padding: 0;
}
.container {
position: relative;
display: flex;
flex-direction: column;
width: 50%;
}
.element {
flex: 1 0 0;
padding: 0.5em;
text-align: center;
position: relative;
background-color: red;
margin-right: 1em;
}
.subcontainer {
flex: 0 1 auto;
display: flex;
}
.element a {
color: black;
}Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
<body>
<div class="container">
<div class="subcontainer">
<div class="element"><a>abc</a>
</div>
<div class="element"><a>abcdef</a>
</div>
<div class="element"><a>abcdef</a>
</div>
</div>
</div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
我认为"运行代码片段"功能不允许看到此更改,因此我提供了几个显示差异的GIF:
铬:
火狐:
正如您所看到的,这些框在Chrome中共享相同的宽度,但是Firefox非常明显地限制了第一个框,而其他框保持了它们的比例.这种差异的原因是什么?我该如何解决?我希望每个盒子都有相同的宽度.这是flex: 1 0 0首先使用的目的.
谢谢
尝试设置min-width您需要的任何值,或者只是0px:
.element
{
...
min-width: 0px;
}
Run Code Online (Sandbox Code Playgroud)
细节
对于Firefox,Flex项目min-width:min-content默认具有,如此处所示
这些实现为这个关键字实现了一个稍微简单的行为:它计算到flex项目的min-content,并在其他所有项目上计算为0.
因此,如果我们min-width:-webkit-min-content为Chrome 设置,它将具有相同的不良行为 - jsfiddle.
| 归档时间: |
|
| 查看次数: |
2678 次 |
| 最近记录: |