9

在意识到 的奇妙功能后display:flex,我制作了一个网页,当在 Windows 上的 Chrome 26 中查看时,它看起来完全符合我的要求。但是,它在我的 Android 上的 Chrome 26 中不起作用,在我的模拟器中的 Android 浏览器 4.1 中也不起作用。根据caniuse的说法,所有这些浏览器都应该支持它。

也许巧合的是,它在 Android 中的外观(据我所知)与我切换到旧版本时的外观相同display:box

这是 Windows 与 Android 中的样子:

窗户与安卓

我的问题是,如何防止这些跨设备问题?也许使用 flex 以外的东西直到它变得更加标准会更好。谁能给我一个不使用 flex 或在 Android 上工作的工作示例?这是一个移动网络应用程序。任何帮助深表感谢。我的代码的链接如下。

使用-webkit-flex:JSFiddle

带框:JSFiddle

4

2 回答 2

9

有 3 个具有不同属性/值的 Flexbox 草稿需要注意。Caniuse 仅区分支持当前草案的浏览器(“支持”)与支持旧草案(“部分支持”)的浏览器。

为了最大限度地支持浏览器,您只需包含所有从最旧版本到最新版本的浏览器。

.foo {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
}

.bar {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

虽然所有 Android 版本目前都支持旧的 2009 属性,但它们可能会在未来被放弃,以支持标准属性。另请注意,Blackberry 10 被列为支持当前标准,而不是任何旧草案。

于 2013-05-16T19:25:59.007 回答
1

对于那些好奇的人,我最终完全重写了我的代码以不使用 flex。这是一个指向 JSFiddle 的链接,它对我的​​目的非常有用。http://jsfiddle.net/8juSk/

它使用boxbox-ordinal-group@cimmonon 的建议。

于 2013-05-20T14:46:11.563 回答