display:flex和display:box都可用于弹性布局,不同的是display:box是2009年的命名,已经过时,用的时候需要加上前缀;display:flex是2012年之后的命名。在实际的测试中display:flex不能完全的替代display:box。display:flex的浏览器兼容性比较麻烦。

1.关于display:flex

对于响应式布局,使用flex很方便,但是它的兼容性也是一个值得考虑的问题。

<div class="container">
<div class="item" style="background:#f00"></div>
<div class="item" style="background:#000"></div>
<div class="item" style="background:#08c"></div>
<div class="item" style="background:#a00"></div>
<div class="item" style="background:#0f0"></div>
</div>
1
2
3
4
5
6
7
8
9
10
11
.container{
        display:flex;
        flex-flow:row nowrap;
        justify-content:space-between;
        align-items:center;
        margin:0 auto;
        width:100%;
        height:200px;
        background:#eee;
    }
    .item{flex:1;height:200px;}

  

对于PC端,一般chrome(测试版本:49.0.2623.110 m)和火狐(测试版本:49.0.2)都能很好地支持。ie不支持,显示的是顺序排列下来的宽度100%的模块。

对于移动端:

(1)上述代码iOS的原生safari浏览器是支持的;UC浏览器支持的很好;微信浏览器不支持(测试机型:苹果4s)

(2)安卓的原生浏览器不支持,能够正常显示模块,文档流依次排列;UC浏览器不支持,显示为空白;微信浏览器不支持(测试机型:华为荣耀6 Plus,Android4.4.2)

2.关于display:box

1
2
3
4
5
<div class="container">
        <div class="item item1" style="background:#f00"></div>
        <div class="item item2" style="background:#000"></div>
        <div class="item item3" style="background:#08c"></div>
    </div>
1
2
3
4
5
6
7
8
9
10
11
.container{
        display:-moz-box;
        display:-webkit-box;
        display:box;
        width:100%;
        height:200px;
    }
.item{height:200px;}
.item1{-moz-box-flex:1;-webkit-box-flex:1;box-flex:1;}
.item2{-moz-box-flex:2;-webkit-box-flex:2;box-flex:2;}
.item3{-moz-box-flex:3;-webkit-box-flex:3;box-flex:3;}

PC端:chrome(测试版本:49.0.2623.110 m)和火狐(测试版本:49.0.2)都能很好地支持。ie不支持,显示的是顺序排列下来的宽度100%的模块。

移动端:

(1)上述代码iOS的原生safari浏览器是支持的;UC浏览器支持的很好(测试机型:苹果4s)

(2)安卓的原生浏览器支持;UC浏览器不支持,显示为空白(测试机型:华为荣耀6 Plus:Android4.4.2)

 UC浏览器是支持display:box;在我的手机上之所以没显示,排查了一下原因,是因为页面缺少meta,<meta name="viewport" content="width=device-width" />加上之后就可以正常显示了。具体是为什么只有我的手机上非要加meta,我也不清楚--_--

总的来说,不考虑IE浏览器的话,PC端上使用哪个都可以,一般使用display:flex;移动端的安卓的UC只支持display:box,iOS的UCdisplay:box和display:flex两个都支持。

3.兼容浏览器的写法

1
2
3
4
5
6
7
8
.container{
display: -webkit-box; /* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */
display: -moz-box; /* Firefox 17- */
display: -webkit-flex; /* Chrome 21+, Safari 6.1+, iOS Safari 7+, Opera 15/16 */
display: -moz-flex; /* Firefox 18+ */
display: -ms-flexbox; /* IE 10 */
display: flex; /* Chrome 29+, Firefox 22+, IE 11+, Opera 12.1/17/18, Android 4.4+ */
}

  

  

display:flex和display:box布局浏览器兼容性分析的更多相关文章

  1. 使用display:flex;实现两栏布局和三栏布局

    一.使用display:flex;实现两栏布局 body,div{margin:0px;padding:0px;} .flex-container{display:flex;height:300px; ...

  2. CSS3 display:flex和display:box有什么区别?

    **区别**,仅是各阶段草案命名.- W3C 2009年第1次草案:[display:box;](https://www.w3.org/TR/2009/WD-css3-flexbox-20090723 ...

  3. 1.display:flex布局笔记

    /*display:flex布局方式主要运用于垂直居中的效果*/ 一.Flex译为Flexible Box(弹性盒子),任何一个容器都可以指定为Flex布局 注:设置为Flex布局之后,子元素的flo ...

  4. display:flex 布局教程,弹性布局!

    display:flex 布局教程 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现. ...

  5. css display:flex 属性

    一:display:flex 布局 display:flex 是一种布局方式.它即可以应用于容器中,也可以应用于行内元素.是W3C提出的一种新的方案,可以简便.完整.响应式地实现各种页面布局.目前,它 ...

  6. 浅谈display:flex

    display:flex 意思是弹性布局 首先flex的出现是为了解决哪些问题呢? 一.页面行排列布局 像此图左右两个div一排显示 可以用浮动的布局方式 html部分 css部分 这种布局有两个缺点 ...

  7. flex的使用以及布局

    1.添加flex属性后的区别 <style> body{ font-size:35px; } .flex-box{ display:flex; display: -webkit-flex; ...

  8. flex的使用以及布局 转载

    转 : http://www.cnblogs.com/waisonlong/p/6055020.html flex的使用以及布局   1.添加flex属性后的区别 1 2 3 4 5 6 7 8 9 ...

  9. 布局神器display:flex

    2009年,W3C提出了一种新的方案--Flex布局,可以简便.完整.响应式地实现各种页面布局.目前已得到所有现在浏览器的支持.   flex浏览器支持 一.Flex布局是什么? Flex是Flexi ...

随机推荐

  1. POJ 3122-Pie(二分+精度)

    题目地址:id=3122">POJ 3122 题意:给出n个pie的直径.有F+1个人,假设给每人分的大小同样(形状能够不同),每一个人能够分多少.要求是分出来的每一份必须出自同一个p ...

  2. iOS Programming - Views(视图 - 基本绘制,变换,平移,旋转,反转,倾斜)

    1. Views A view (an object whose class is UIView or a subclass of UIView) knows how to draw itself i ...

  3. iOS项目开发实战——使用CoreLocation获取当前位置信息

    随着基于位置服务LBS和移动互联网的兴起,你的位置是越来越重要的一个信息.位置服务已经是当前的热门应用如微信.陌陌等社交应用的杀手锏.而在iOS开发中,苹果已经给我们提供了一个位置接口.CoreLoc ...

  4. 使用caffe的HDF5数据完毕回归任务

    一直在研究怎样用caffe做行人检測问题.然而參考那些经典结构比方faster-rcnn等,都是自己定义的caffe层来完毕的检測任务. 这些都要求对caffe框架有一定程度的了解.近期看到了怎样用c ...

  5. 【Datastage】在win10安装Datastge 8.7

    在win10安装提示Datastage提示如下错误: 强制安装: setup.exe -force 进入浏览器安装界面后 忽略"失败"即可成功安装.

  6. hibernate 组件映射

    注解方式:   import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence ...

  7. 【HTML】百度地图webAPI使用

    1.登录百度地图,创建WEB应用,设置白名单.获取该WEB应用的ak 2.在页面引入相应的js和ak 3.效果(CSS不提供): 4.实例化地图map,并给map添加相应的搜索和确定坐标事件 < ...

  8. Redhat 企业版 LINUX AS5.0 下载地址

    http://www.5dlinux.com/article/1/2007/linux_7905.html最新的企业版Linux操作系统Red Hat Enterprise Linux 5.沉寂两年多 ...

  9. 联想E440问题:点击鼠标时,弹出“无法连接synaptics定点装置驱动程序”错误

    笔记本:Levono E440   问题描述: 在控制面板中,点击鼠标时,弹出“无法连接synaptics定点装置驱动程序”错误,如何解决? 即使在安装联想的驱动后,也没办法解决   解决步骤: 1. ...

  10. Hyper-V 虚拟机无法上网的解决方法

    创建一个虚拟机网络交换机 2 创建一个 外部网络如下图所示: 3 添加一个旧版的网络适配器: 4 设置旧版网络适配器: END XP系统的情况 1 启动虚拟机,设置虚拟机IP: 2 输入http:// ...