Internet Explorer 10 不对内联元素应用 Flexbox
-
21-12-2019 - |
解决方案
这只是因为 IE10 发布后,(工作草案)flexbox 规范发生了变化。
以下是 CSS Flexbox 工作草案中的相关规范文本块,它在 2012 年底发布 IE10 时就已存在:
Flex 布局算法对 Flex 项目生成的框进行操作。以下各项均成为弹性项目:
[...]
4.一个匿名块,包裹着一系列连续的非替换内联子元素。
来源: http://www.w3.org/TR/2012/WD-css3-flexbox-20120612/#flex-items
A span
是“不可替换的内联子元素”。所以 IE10 封装了 span
(以及任何相邻的内联内容)在匿名块中(匹配旧规范)而不是转换它 到 一个块(根据新规范)。
我怀疑 Microsoft 不想在发布后更改此功能,以避免破坏已经编码为 IE10 中的特定行为的内容。
因此,如果你想编写有效的 Flexbox 内容 两个都 在IE10中 和 对于更新的浏览器版本,最好不要依赖此特定行为。(要明确;将这些跨度更改为 div,或者给它们 display:block
, ,因为您知道它们无论如何都会在较新的浏览器中转换为块。)
其他提示
你试过这个属性吗?
display:-ms-inline-flexbox;
(用于内联柔性键容器)。
不隶属于 StackOverflow