您现在的位置:首页 >> 前端 >> 内容

css3弹性布局

时间:2016/12/13 9:34:39 点击:

  核心提示:弹性布局是CSS3引入的强大的布局方式,用来替代以前Web开发人员使用的一些复杂而易错hacks方法(如使用float进行类似流式布局)。其中flex-flow是flex-direction和flex...

弹性布局是CSS3引入的强大的布局方式,用来替代以前Web开发人员使用的一些复杂而易错hacks方法(如使用float进行类似流式布局)。

其中flex-flow是flex-direction和flex-wrap属性的简写方式,语法如下:

flex-flow: ||

flex-direction: row(初始值) | row-reverse | column | column-reverse

flex-wrap: nowrap(初始值) | wrap | wrap-reverse

flex-direction定义了弹性项目在弹性容器中的放置方向,默认是row,即行内方向(一般而言是由左往右,但注意这个和书写模式有关)。

flex-wrap定义是否需要拆行以使得弹性项目能被容器包含。*-reverse代表相反的方向。

两者结合起来即flex-flow属性就确定了弹性容器在main axis和cross axis两个方向上的显示方式,下面的例子很直观的说明了各个属性值的区别:

css3弹性布局

.flex-container{
display:flex;
}
.flex-container.first{
flex-flow:row;
}
/*Initialvalue.Main-axisis
inline,nowrap.*/

.flex-container.second{
flex-flow:columnwrap;
-webkit-flex-flow:columnwrap;
}
/*Main-axisisblock-direction(toptobottom)
andlineswrapintheinlinedirection(rightwards).*/

.flex-container.third{
flex-flow:row-reversewrap-reverse;
}
/*Main-axisistheoppositeofinlinedirection
(righttoleft).Newlineswrapupwards.*/
/*otherstylesjustforformat*/

ul{
padding:0;
}
li{
list-style:none;
}
.flex-container{
background:deepskyblue;
width:200px;
height:200px;
margin:5pxauto;
}
.flex-container.first{
height:100px;
}
.flex-item{
background:tomato;
padding:5px;
width:80px;
height:80px;
margin:5px;
line-height:80px;
color:white;
font-weight:bold;
font-size:2em;
text-align:center;
}
h1{
font-size:22px;
text-align:center;
}
.flex-demo{
display:flex;
}

上例中的第1个弹性项列表使用了默认属性也就是row且不拆行,弹性项的宽度在需要的时候会被压缩。
第2个列表使用了column wrap,表示主轴方向是从上往下,而行拆分的方向是行内方向(向右)。
而第3个列表使用了row-reverse wrap-reverse,表示主轴方向是行内相反方向(从右到左),新行向上拆分。

Tags:CS SS S3 3弹 
作者:网络 来源:GaojbSunny