0

我有一个跨浏览器兼容性问题,我正在尝试为 IE9/IE10 和 Firefox 寻找解决方案。

nav {
    -webkit-box-orient: horizontal;
}
nav a {
    -webkit-box-flex:1;
}

上面的代码似乎只适用于 Chrome。Mozilla 是否为此提供了特定于浏览器的代码?IE 是否为此提供了特定于浏览器的代码?

此代码来自的网站是http://www.daven.nl/

提前致谢。

4

3 回答 3

2

IE9 根本不支持 flexbox。基本上,不同的浏览器供应商已经实现了 3 种不同的规范。

从 Firefox 20 开始,您只需要关心 2012 年的规范:IE10 遵循 3 月的规范,其他所有人都遵循 9 月的规范。如果您希望在 2009 草案之后支持浏览器,请注意 Mozilla 不支持flex-wrap. 我知道这在最近的 Firefox 版本中仍然是一个抱怨,这些版本对新草稿具有实验性支持(默认禁用)。不确定这是否应该在版本 20 中修复。

我在 Sass 中编写了一系列 mixin(取决于 2 Compass mixins),涵盖了所有规范。有评论显示给定草稿不存在哪些属性或值。

https://gist.github.com/4461470

于 2013-02-01T15:41:27.200 回答
1

Firefox 使用 -moz 并且 IE 使用 -ms 作为其供应商前缀。但是,大多数版本都不支持 -ms 我相信 IE 10 是唯一支持 -ms 的版本。

http://www.w3schools.com/cssref/css3_pr_box-orient.asp

http://www.w3schools.com/cssref/css3_pr_box-flex.asp

 /* Firefox */
 display:-moz-box;
 -moz-box-orient:horizontal;

-moz-box-flex:2.0; 

我会在 IE 10 中尝试一下,看看它是否有效。根据 w3,它看起来在 IE 中没有太多支持。但值得一试。

 display:-ms-box;
 -ms-box-orient:horizontal;

-ms-box-flex:2.0; 
于 2013-02-01T15:22:24.943 回答
0

我在 IE10 上试了一下,好像还不错。

-ms-flex:1 0 auto;
于 2013-04-18T06:11:00.087 回答