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

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

我写页面的时候用到过不少的flex布局,以为很是好用。下面附上一篇不错的flex布局介绍的文章。 
Flex 布局教程想了解的能够本身去看看这篇博文,或者本身百度,这里先部多作介绍,咱们主要来讲一说flex布局的兼容性问题。html

why?

你们可能想问了,flex布局为何会存在兼容性问题啊?vue

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

what?

那么新旧版本是什么?react

flex布局分为旧版本dispaly: box;,过渡版本dispaly: flex box;,以及如今的标准版本display: flex;。因此若是你只是写新版本的语法形式,是确定存在兼容性问题的。程序员

  • Android web

    • 2.3 开始就支持旧版本 display:-webkit-box;
    • 4.4 开始支持标准版本 display: flex;
  • IOS 浏览器

    • 6.1 开始支持旧版本 display:-webkit-box;
    • 7.1 开始支持标准版本display: flex;
  • PC 
    ie10开始支持,可是IE10的是-ms形式的。

下面是各个浏览器的支持状况布局

image.png

how?

因此咱们该如何进行兼容性的写法呢?flex

  • 盒子的兼容性写法
.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

爱写bugger的阿拉斯加

相关文章
相关标签/搜索