我试图使 justify-content: flex-end;
在 IE11 中为溢出隐藏的 DIV 内容工作,但没有成功。
在尝试了几种组合后,我创建了一个在 Chrome 中有效但在 IE11 中无效的最小片段:
.token-container {
width: 200px;
white-space: nowrap;
overflow: hidden;
padding: 5px;
box-shadow: 1px 1px 2px 1px silver inset;
display: flex;
flex-direction: row;
justify-content: flex-end;
//align-content: flex-end;
}
.token {
display: inline-block;
border: 1px solid silver;
margin: 1px 3px 0 0;
border-radius: 4px;
height: 19px;
padding: 0 3px;
}
<div class="token-container">
<div class="token">
<span class="token-text">t-bone</span>
</div>
<div class="token"><span class="token-text">hamburger</span></div>
<div class="token"><span class="token-text">pancetta</span></div>
<div class="token"><span class="token-text">leberkäs</span></div>
<div class="token"><span class="token-text">bacon</span></div>
</div>
这是 CodePen 中的相同片段: http ://codepen.io/anon/pen/bVgOYJ
我希望“培根”项目与盒子的右端对齐;相反,’t-bone’ 左对齐。
请指出任何错误,也许是我对 Internet Explorer 的期望。
更新:添加了我自己的替代解决方案
利用 对另一个 SO 问题的回应,我能够做到这一点——无需使用 flexbox。
http://codepen.io/anon/pen/ZbeQmW
所以,我想谢谢@AaronSieb。
原文由 craPkit 发布,翻译遵循 CC BY-SA 4.0 许可协议
这似乎不是 flexbox 问题。这似乎更多是 Internet Explorer 如何处理
overflow: hidden
的问题。在您的代码中,您将 flex 容器的宽度设置为 200px。如果将其更改为,比方说,500px,您会看到
justify-content: flex-end
在 IE11(以及所有其他主要浏览器)中运行良好。似乎当
overflow: hidden
在 IE11 中剪辑内容时,对 flex 对齐的尊重并不多。这是另一个测试:将
width
恢复到200px。然后将对齐方式更改为justify-content: flex-start
。IE11 中没有任何变化(
flex-start
和flex-end
看起来一样)。但是,如果您将width
扩展到 500px,您会看到flex-start
实际应用了。 (同样处理center
值。)基于这些测试,我会说这不是 flexbox 问题。在快速搜索中,我找不到任何关于
overflow: hidden
和 IE11 的问题,但这可能就是问题所在。