box-flex兼容写法

box-flex布局在这几年发生了多次变化,可分为2009版、2011版以及2013版,

区分:

display:box(inline-box), box-{*}的格式为2009版

display:boxflex(inline-flexbox), flex()为2011版

display:flex(inline-flex), flex()为2013版,也是最新的版本

由此可见兼容写法的复杂。。

三种版本分别由那些浏览器支持呢?

2009: 支持性最广的一版: Chrome、Firefox2+、Safari3.1+(一部分属于部分支持,得加上-webkit、-moz前缀),但IE与opera完全不支持

2011:由IE10部分支持

2013:Chrome21+、Opera(Opera Mobile12.1+和Blackberry10+)

可查看以下兼容图:

2009版本写法

.box {

  display: -webkit-box; /*兼容webkit内核浏览器,例如chrome与safari*/

  display: -moz-box;/*兼容firefox*/

  display: box;

}

.box>div {

  -webkit-box-flex: 1;

  -moz-box-flex: 1;

}

注意:

1.flex元素若添加float、position属性,将失去box-flex布局赋予其的宽高等属性

2013写法:

.box {

  display: -webkit-flex; /*webkit内核*/

  display: flex; /*兼容firefox、opera*/

}

.box >div {

  -webkit-flex: 1 0 auto;

  flex: 1 0 auto;

}

注意:

1.此写法中子元素设置float无效,不影响原布局

为了追求更好地兼容性,我们一般会采用兼容写法

.box {

  display: -webkit-box;

  display: -moz-box;

  display: -ms-boxflex;

  display: -webkit-flex;

  display: flex;

}

.div >div {

  -webkit-box-flex: 1;

  -moz-box-flex: 1;

  -ms-felx: 1;

  width: 50%;

  -webkit-flex: 1;

  flex: 1;

}

注意:

新语法中没有不要显式设置宽度(width:50%),但旧语法在部分老旧浏览器上会崩溃,因此最好加上。

兼容写法支持情况:

  • Chrome any
  • Firefox any
  • Safari any
  • Opera 12.1+
  • IE 10+
  • iOS any
  • Android any
时间: 2024-08-02 01:08:08

box-flex兼容写法的相关文章

CSS3之flex兼容写法

很久不写博文,之前的长时间不上都关闭了,但随着工作时间长越来越长,对知识的积累和总结还真的是很重要的.所以奉劝码农们每天都还是要抽出来一点时间总结点东西,以后对你受益匪浅!!今天还是变谈CSS3里的flex怎么处理兼容的 flex是个非常好用的属性,如果说有什么可以完全代替 float 和 position ,那么肯定是非它莫属了,虽然现在低版本浏览器不支持,可是对于移动来说兼容性不是问题,可是在安卓4.3以后版本里.那就不好用了,今天咱们就说下如果写flex才能保证兼容性. flex之所以有兼

健康养生 (flex 兼容写法在打包后丢失、安卓4.4显示错误)

此次项目需要兼容 andriod 4.4 ,ios 8 . 故此带来了不少兼容问题 1. vue 项目在本地表现正常,打包后出现部分样式丢失. 如果只是小范围的影响,可以用以下注释跳过 webpack 对 css 的压缩计算 /*! autoprefixer: off */ -webkit-box-orient: vertical; /* autoprefixer: on */ 大范围的样式更改,可以直接修改  / build / webpack.prod.conf.js  文件(相关文章) /

CSS之flex兼容

随着自己写过的页面的增多,也遇到了很多CSS兼容性的问题.这些兼容性问题,都是必然的,因为技术在不断进步,不断革新,所谓,“后浪推前浪,前浪拍死在沙滩上”,当然我们的技术不能是被拍死在沙滩上,我们还要支持,不支持的话,只能是你这个页面,这个产品被淘汰. 那么为了不被淘汰,我们就要做些兼容性处理. 我写页面的时候用到过很多的flex布局,觉得非常好用.下面附上一篇不错的flex布局介绍的文章. Flex 布局教程想了解的可以自己去看看这篇博文,或者自己百度,这里先部多做介绍,我们主要来说一说fle

currentStyle和getComputedStyle的兼容写法

今天学习javascript的时候,教程中介绍了一种简单实现jQuery 中css()方法的写法 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> #div{ width: 200px; height: 200px; background: re

CSS3 box flex 布局

1.伸缩项目的布局方式-从左到右 <ul id="Layout1" class="box"> <li>1</li> <li>1</li> <li>1</li> </ul> .box{ width: 250px; padding: 10px; background: #999; margin: 10px; } .box li{ width: 100px; height: 1

IE浏览器跟火狐浏览器兼容写法2

XHTML+CSS兼容性解决方案小集 ! 我就先把一些我遇到的问题写在下面: 1.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法: div{margin:30px!important;margin:28px;}注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别.所以在IE下其实解释成这样: div{maring:30px;margin:28px}重复定义的话按照最后一个来执行,所以不可以只写m

map() 和 forEach() 区别 兼容写法

兼容写法: 不管是forEach还是map在IE6-8下都不兼容(不兼容的情况下在Array.prototype上没有这两个方法),那么需要我们自己封装一个都兼容的方法,代码如下: /** * forEach遍历数组 * @param callback [function] 回调函数: * @param context [object] 上下文: */ Array.prototype.myForEach = function myForEach(callback,context){ contex

常用原生JS兼容写法

在我们前端开发中,经常会遇到兼容性的问题,因为要考虑用户会使用不同的浏览器来访问你的页面,你要保证你做的网页在任何一个浏览器中都能正常的运行,下面我就举几个常用原生JS的兼容写法: 1:添加事件方法 addHandler:function(element,type,handler){  if(element.addEventListener){//检测是否为DOM2级方法   element.addEventListener(type, handler, false);  }else if (e

javascript获取行间样式和非行间样式--兼容写法

style:获取行间样式: currentStyle:获取计算后的样式,也叫当前样式.最终样式. 优点:可以获取元素的最终样式,包括浏览器的默认值,而不像style只能获取行间样式,所以更常用到.注意:不能获取复合样式如background属性值,只能获取单一样式如background-color等. alert (oAbc.currentStyle);IE8和Opera 11弹出了“object CSSStyleDeclaration”:FF 12.chrome 14.safari 5则弹出“