资讯专栏INFORMATION COLUMN

解决flex布局新旧版本的兼容性写法

raoyi / 1712人阅读

摘要:最新开发的项目用了的新特性布局,遇到了兼容性的问题。那么新旧版本是什么布局分为旧版本,过渡版本,以及现在的标准版本。所以如果你只是写新版本的语法形式,是肯定存在兼容性问题的。

最新开发h5的项目用了css的新特性flex布局,遇到了CSS兼容性的问题。在网上找到了如下的解决办法。

我写页面的时候用到过很多的flex布局,觉得非常好用。下面附上一篇不错的flex布局介绍的文章。 
Flex 布局教程想了解的可以自己去看看这篇博文,或者自己百度,这里先部多做介绍,我们主要来说一说flex布局的兼容性问题。

why?

大家可能想问了,flex布局为什么会存在兼容性问题啊?

之所以存在兼容性问题,是因为技术在不断的更新,有些旧的浏览器只支持旧语法的书写方式,所以就出现所谓的兼容性问题

what?

那么新旧版本是什么?

flex布局分为旧版本dispaly: box;,过渡版本dispaly: flex box;,以及现在的标准版本display: flex;。所以如果你只是写新版本的语法形式,是肯定存在兼容性问题的。

Android 

2.3 开始就支持旧版本 display:-webkit-box;

4.4 开始支持标准版本 display: flex;

IOS 

6.1 开始支持旧版本 display:-webkit-box;

7.1 开始支持标准版本display: flex;

PC 
ie10开始支持,但是IE10的是-ms形式的。

下面是各个浏览器的支持情况

how?

所以我们该如何进行兼容性的写法呢?

盒子的兼容性写法

.box{    display: -webkit-box;  /* 老版本语法: Safari, iOS, Android browser, older WebKit browsers. */    display: -moz-box;     /* 老版本语法: Firefox (buggy) */    display: -ms-flexbox;  /* 混合版本语法: IE 10 */    display: -webkit-flex; /* 新版本语法: Chrome 21+ */    display: flex;         /* 新版本语法: Opera 12.1, Firefox 22+ */}

子元素的兼容性写法

.flex1 {      -webkit-box-flex: 1   /* OLD - iOS 6-, Safari 3.1-6 */      -moz-box-flex: 1;     /* OLD - Firefox 19- */                  -webkit-flex: 1;      /* Chrome */      -ms-flex: 1           /* IE 10 */      flex: 1;              /* NEW, Spec - Opera 12.1, Firefox 20+ */}
这种兼容写法不一定起效的。尤其是在底版本安卓系统中。因为什么呢?因为所有都是向下兼容的,所以写法的顺序一定要写好了才起作用。就是把旧语法写在底下,个别不兼容的移动设置才会识别,哪些是旧的语法,你懂的。那些带box的一定要写在最下面即可。

所以上面的兼容写法应该是这样的才对:

.box{
    display: -webkit-flex;  /* 新版本语法: Chrome 21+ */
    display: flex;          /* 新版本语法: Opera 12.1, Firefox 22+ */
    display: -webkit-box;   /* 老版本语法: Safari, iOS, Android browser, older WebKit browsers. */
    display: -moz-box;      /* 老版本语法: Firefox (buggy) */
    display: -ms-flexbox;   /* 混合版本语法: IE 10 */   
 
 }
 
.flex1 {            
    -webkit-flex: 1;        /* Chrome */  
    -ms-flex: 1             /* IE 10 */  
    flex: 1;                /* NEW, Spec - Opera 12.1, Firefox 20+ */
    -webkit-box-flex: 1     /* OLD - iOS 6-, Safari 3.1-6 */  
    -moz-box-flex: 1;       /* OLD - Firefox 19- */       
 }
总结

这样来试试吧,保证不会再出现返工修改的问题。 
good luck!

最后

我不是大神,也不是什么牛人,写这个号的目的是为了记录我自学 web全栈 的笔记。

有兴趣的朋友可以扫下方二维码公众号—— 爱写bugger的阿拉斯加

分享 web 开发相关的技术文章,热点资源,全栈程序员的成长之路

和大家一起交流成长。

只要关注公众号并回复 福利 便送你六套、并且每套价值 3999 元的视频资源: Python、Java、Linux、Go、vue、react、javaScript

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/116849.html

相关文章

  • Flex 布局新旧混合写法详解(兼容微信)

    摘要:属性总共有个值主轴对齐左对齐默认右对齐居中对齐左右对齐属性定义子元素交叉轴对齐方式。属性总共有个值交叉轴对齐顶部对齐默认底部对齐居中对齐文本基线对齐上下对齐并铺满属性定义子元素的显示方向。 flex 是个非常好用的属性,如果说有什么可以完全代替 float 和 position ,那么肯定是非它莫属了(虽然现在还有很多不支持 flex 的浏览器)。然而国内很多浏览器对 flex 的支持...

    includecmath 评论0 收藏0
  • Flexbox布局正确使用姿势

    摘要:分配空间原理影响布局分配空间的属性有三个,分别是和。伸缩项目扩展宽度项目容器宽度项目宽度或项目设置的总和对应的比例拉伸后伸缩项目宽度原伸缩项目宽度扩展宽度我们来计算一下上面栗子中第一个伸缩项目拉伸后的宽度。 在项目中,我们还会大量使用到flexbox的新旧属性,但大多数人一般只会写新属性,旧属性交由autoprefixer处理,但其实完成同样功能的新旧属性表现形式却不尽相同。还有部分人...

    GitCafe 评论0 收藏0
  • HTML-CSS

    摘要:但是,从字体上来说雪碧图制作,使用以及相关,图文。由于采用了编译,所以能够保证在浏览器不支持标准布局的情况下,回滚到旧版本的,保证移动设备中能呈现出一样的布局效果。我不想陷入和的纷争,但是有一件事是确定的极大的提升了移动端 一劳永逸的搞定 flex 布局 寻根溯源话布局 一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平、垂直同时居中。记得刚开始学习 CSS 的时候,看到 ...

    xiaokai 评论0 收藏0
  • HTML-CSS

    摘要:但是,从字体上来说雪碧图制作,使用以及相关,图文。由于采用了编译,所以能够保证在浏览器不支持标准布局的情况下,回滚到旧版本的,保证移动设备中能呈现出一样的布局效果。我不想陷入和的纷争,但是有一件事是确定的极大的提升了移动端 一劳永逸的搞定 flex 布局 寻根溯源话布局 一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平、垂直同时居中。记得刚开始学习 CSS 的时候,看到 ...

    CHENGKANG 评论0 收藏0
  • css - 收藏集 - 掘金

    摘要:绝对底部前端掘金来自国外的设计达人,纯,可以实现当正文内容很少时,底部位于窗口最下面。有效解决图片使用单位边角缺失的问题前端掘金起因在移动端使用布局时图片也需要用单位。 CSS 绝对底部 - 前端 - 掘金来自国外的设计达人,纯CSS,可以实现: 当正文内容很少时,底部位于窗口最下面。当改变窗口高度时,不会出现重叠问题。甚至,创造该CSS的人还专门成立一个网站介绍这个CSS底部布局方案...

    phpmatt 评论0 收藏0

发表评论

0条评论

raoyi

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<