display:flex和display:box布局浏览器兼容性分析

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>
.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

<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>
.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.兼容浏览器的写法

.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+ */
}

  

  

时间: 2024-09-30 23:27:34

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

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

**区别**,仅是各阶段草案命名.- W3C 2009年第1次草案:[display:box;](https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/)- W3C 2011年第2次草案:[display:flexbox | inline-flexbox;](https://www.w3.org/TR/2011/WD-css3-flexbox-20110322/)- W3C 2012年第5次草案及以后的候选推荐标准:[display:flex |

CSS3.0盒模型display:flex;的使用[兼容微信浏览器]

话不多说,上代码,关键在对应的低版本安卓的微信浏览器,需要-webkit-box对应的-webkit-box-orient -webkit-box-pack等的设置. .flex{ /* 设置弹性布局 */ display:-webkit-box;/* android 2.1-3.0, ios 3.2-4.3 */ display:-webkit-flex;/* Chrome 21+ */ display:-ms-flexbox;/* WP IE 10 */ display:flex;/* an

关于display:flex和display:-webkit-box的用法

一.对内部元素平均分配的问题 1.display:flex; 如果要加私有的话那么方法是display:-webkit-flex;而不是-webkit-display:flex;子元素flex:1然后平均分配,但是这个方法会有一个兼容性,就是UC和QQ浏览器有兼容 2.display:-webkit-box,display:box;  子元素要:-webkit-box-flex:1;-moz-box-flex:1; 如果要平均分配要加上width:0;这个兼容性相对来说好一些 先简单的总结下,具

1.display:flex布局笔记

/*display:flex布局方式主要运用于垂直居中的效果*/ 一.Flex译为Flexible Box(弹性盒子),任何一个容器都可以指定为Flex布局 注:设置为Flex布局之后,子元素的float,clear,vertical-align属性都失效 1 .box1 { 2 display : flex 3 } 4 .box2 { 5 display : inline-flex 6 } 7 .box3 { 8 display : -webkit-flex; 9 display : flex

display:flex 布局教程

布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现. 一.Flex布局是什么? Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. [css] view plain copy .box1{ display: flex; } .box2{ display: inline-flex;  <sp

css display:flex 属性

一:display:flex 布局 display:flex 是一种布局方式.它即可以应用于容器中,也可以应用于行内元素.是W3C提出的一种新的方案,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持. Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性.设为Flex布局以后,子元素的float.clear和vertical-align属性将失效. 二:flex的六个属性 flex-direction 容器内元素的排列方

CSS display:flex的示例

在编写下图类似的HTML时,我最初使用的float,发现浮动的写法很不方便,后面经百度改用display:flex进行布局,并对这一CSS属性产生了浓厚的兴趣. 通过几行代码轻松解决了左右对齐显示,并且意外发现通过 align-items: center 还可以实现上下对齐居中 我正在使用 styled-components 去实现前端效果,所以代码分为样式部分style.js和页面部分index.js style.js: 1 export const Legend = styled.div`

使用display flex将图片居中的方法

display:flex 是一种布局方式.它即可以应用于容器中,也可以应用于行内元素.是W3C提出的一种新的方案,可以简便.完整.响应式地实现各种页面布局 注意:(Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性.设为Flex布局以后,子元素的float.clear和vertical-align属性将失效.) 1.将图片水平方向居中: justify-content:用于设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式. <!DOCT

前端布局神器display:flex

2009年,W3C提出了一种新的方案--Flex布局,可以简便.完整.响应式地实现各种页面布局.目前已得到所有现在浏览器的支持. flex浏览器支持 一.Flex布局是什么? Flex是Flexible Box的缩写,翻译成中文就是"弹性盒子",用来为盒装模型提供最大的灵活性.任何一个容器都可以指定为Flex布局. .box{ display: -webkit-flex; /*在webkit内核的浏览器上使用要加前缀*/ display: flex; //将对象作为弹性伸缩盒显示 }