html - flexbox 在 iOS 上不工作(排序)

标签 html ios css webkit flexbox

我有一个 <ul>其中有几个列表项都包含一个图像。 <ul>在更宽的屏幕上水平显示,但在移动设备上我显示列表项的 2 x 2。最初我用 float:left; width: 50%; 来做这个设置在列表项上,效果很好。但是由于图像是 Logo 并且所有不同的尺寸看起来都不正确,所以我决定使用 flexbox 来重新排序列表项,以便图像的排列不同并且看起来更整洁。我的 CSS 如下:

ul {
    overflow: hidden;
    display: -webkit-box;   /* OLD: Safari,  iOS, Android browser, older WebKit browsers.  */
    display: -moz-box;      /* OLD: Firefox (buggy) */
    display: -ms-flexbox;   /* MID: IE 10 */
    display: -webkit-flex;  /* NEW, Chrome 21?28, Safari 6.1+ */
    display: flex;
    -webkit-flex-flow: row wrap;
    -moz-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
}

li {
    display: block; 
    margin: 0 0 @baseline/2 0;
    padding: 0;
    text-align: center;
    width: 50%;
}

li:nth-child(1) {order: 1;}
li:nth-child(2) {order: 2;}
li:nth-child(3) {order: 4;}
li:nth-child(4) {order: 3;}
li:nth-child(5) {order: 5;}
li:nth-child(6) {order: 6;}
li:nth-child(7) {order: 7;}

li:last-child {
    clear: left;
    float: none;
    margin: 0 auto;
}

我确实有 float:left;在列表项上,但我收集 flexbox 不需要这个 if flex-flow: row wrap已设置...或者至少不应该设置?

上面的 CSS 在我的 iMac 的 Chrome、Firefox 和 Opera 中运行良好。但在 Safari 和 IOS (Safari) 中,元素不会重新排序。

我认为这适用于最新的浏览器,尤其是 webkit 和 iOS - 任何人都可以阐明这一点吗?

这是 Logo 在正常工作时应如何显示...

How the logos should display

这就是它们在 Safari/iPhone 上的显示方式 - 您可以看到顺序不同(错误 - 标记的顺序)...

How they display on Safari/iOs

谢谢,期待您的回复!

最佳答案

它不起作用,因为您在 order 上缺少 -webkit 前缀,这在所有支持 flexbox 的 Safari 和 iOS Safari 版本中仍然是必需的。关于其他浏览器的前缀,请查看 caniuse 上的 flexbox 支持图表。 .

将您的代码更新为:

li:nth-child(1) {order: 1; -webkit-order: 1;}
li:nth-child(2) {order: 2; -webkit-order: 2;}
li:nth-child(3) {order: 4; -webkit-order: 4;}
li:nth-child(4) {order: 3; -webkit-order: 3;}
li:nth-child(5) {order: 5; -webkit-order: 5;}
li:nth-child(6) {order: 6; -webkit-order: 6;}
li:nth-child(7) {order: 7; -webkit-order: 7;}

关于html - flexbox 在 iOS 上不工作(排序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27904072/

相关文章:

html - formtarget ="_blank"在我的提交按钮中也不起作用提交后输入类型提交

javascript - 无法使用轮播将事件 slider 居中

javascript - First-child 控件不起作用以及 CSS 边框问题

javascript - 淡入淡出回调不起作用

ios - 如何从 NSArray : 添加项目

ios - 分配并初始化 destinationViewController

javascript - Ext-JS 快速提示图标 CSS 问题

html - Bootstrap 选项卡内容下降

css - 如何让这个渐变在 chrome 中工作?

ios - 表单中的选取器在SwiftUI中留下了领先的空间