CSS中flex兼容深入研究

前言

我写页面的时候用到过很多的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- */      

}

 

 

时间: 2024-08-31 12:20:29

CSS中flex兼容深入研究的相关文章

DIV+CSS中浏览器兼容方法及div+css的使用技巧

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 相信很多的朋友在div+css的页面制作当中都会遇到这个问题,由于IE系列浏览器对于HTML标签和CSS样式表的解释与其他浏览器会有所区别,所以在制作页面的时候经常会出现一些小BUG,和网页错位等现象,下面站长好站为大家讲解一写,在div+css中如何兼容各大浏览器. 首先我们先要检查相应的HTML标签,如果你的标签错误,无论你如何修改CSS

ie6-IE6中CSS显示不兼容问题

问题描述 IE6中CSS显示不兼容问题 其他浏览器下 IE6这样显示 CSS #content_index .ntc{width:321px;border-right:1px #CCCCCC solid;height:260px;float:left;} .tab {overflow: hidden;width: 321px;height: 52px;cursor: pointer;} .tab li {float: left;width: 160px;text-align: center;li

CSS中的滑动门技术研究

css 在CSS中,一个经常被人们讨论的先进之处即背景图像的可层叠性,并允许他们在彼此之上进行滑动,以创造一些特殊的效果.根据CSS2.0当前的规定,每一个背景图像都需要各自的HTML元素.在许多情况下,典型的标记已经为一般的接口组件提供了多种元素以供我们使用. 标签导航栏就是其中的一个例子.过去,我们频繁的使用这些标签,并已成为了一种非常流行的站点导航方式.现今,在CSS已被广泛支持的前景下,我们可以为我们站点制作出更高质量和更好外观的标签导航栏来.你也许知道CSS可以用来"驯服"无

总结CSS中火狐浏览器与IE浏览器的兼容代码

总结CSS中火狐浏览器与IE浏览器的兼容代码,兼容你兼容主要是语法规范问题,你写CSS写规范了,就都兼容了,其他的就是一些浏览器的BUG了,发一些技巧给你看看,或许有用. CSS技巧 1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了.缺点是要控制内容不要换行 2.margin加倍的问题 设置为float的div在ie下设置的margin会加倍.这是一个ie6都存在的bug.解决

css padding在ie7、ie6、firefox中的兼容问题

padding 简写属性在一个声明中设置所有内边距属性. 说明 这个简写属性设置元素所有内边距的宽度,或者设置各边上内边距的宽度.行内非替换元素上设置的内边距不会影响行高计算:因此,如果一个元素既有内边距又有背景,从视觉上看可能会延伸到其他行,有可能还会与其他内容重叠.元素的背景会延伸穿过内边距.不允许指定负边距值. 注释:不允许使用负值. 例子 1 padding:10px 5px 15px 20px;上内边距是 10px 右内边距是 5px 下内边距是 15px 左内边距是 20px 例子

讨论CSS中的各类居中方式_CSS/HTML

今天主要谈一谈CSS中的各种居中的办法. 首先是水平居中,最简单的办法当然就是 复制代码 代码如下: margin:0 auto; 也就是将margin-left和margin-right属性设置为auto,从而达到水平居中的效果. 那么其他的办法呢?容我一一道来: line-height 首先介绍文字的水平居中方法: 复制代码 代码如下: <div class="wrap">刘放</div> 利用line-height设为height的一样即可: 复制代码 代

CSS中的滑动门技术

css 原文作者:Douglas Bowman 原文出自:A List Apart 中文翻译:54player.com nobita 版权说明:本文中文翻译版权归译者54player.com nobita所有.需要转载发表的,请先与作者联系 在CSS中,一个经常被人们讨论的先进之处即背景图像的可层叠性,并允许他们在彼此之上进行滑动,以创造一些特殊的效果.根据CSS2.0当前的规定,每一个背景图像都需要各自的HTML元素.在许多情况下,典型的标记已经为一般的接口组件提供了多种元素以供我们使用. 标

解析css中30个最常用的选择器

文章简介:30个最常用css选择器解析. 你也许已经掌握了id.class.后台选择器这些基本的css选择器.但这远远不是css的全部.下面向大家系统的解析css中30个最常用的选择器,包括我们最头痛的浏览器兼容性问题.掌握了它们,才能真正领略css的巨大灵活性. 1. * {    margin: 0;    padding: 0;   } 星状选择符会在页面上的每一个元素上起作用.web设计者经常用它将页面中所有元素的margin和padding设置为0. *选择符也可以在子选择器中使用.

CSS中的font-size属性使用教程

  基本语法结构: Font-size+字体大小数值+单位 单词:font-size 语法:font-size : absolute-size | relative-size | length 取值:xx-small | x-small | small | medium | large | x-large | xx-large xx-small:最小 x-small:较小 small:小 medium:正常(默认值),根据字体进行调整 large:大 x-large:较大 xx-large:最大