html – 在iOS上,flexbox无法正常工作(订购)

前端之家收集整理的这篇文章主要介绍了html – 在iOS上,flexbox无法正常工作(订购)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个< ul>它有几个包含图像的列表项. < ul>在更宽的屏幕上水平显示但在移动设备上我显示列表项目的2乘2.最初我用float:left;宽度:50%;设置在列表项上的工作很棒.但由于图像是徽标和所有不同的尺寸,它看起来不正确,所以我决定使用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;
}

我确实有浮动:左;在list-item上但是我收集flexBox不需要这个如果flex-flow:行换行设置…或者至少它不应该?

上面的CSS在我的iMac Chrome,Firefox和Opera中运行良好.在Safari和IOS(Safari)中,这些项目不会重新排序.

我认为这适用于最新的浏览器,尤其是webkit和iOS – 任何人都可以对此有所了解吗?

这是正确工作时徽标的显示方式……

这就是他们在Safari / iPhone上显示的方式 – 你可以看到订单不同(错误标记的顺序)……

谢谢,期待您的回复

解决方法

它不起作用,因为你在订单上缺少-webkit前缀,这在所有版本的Safari和amp;中都是必需的.支持flexBox的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相关文章