CSS3弹性盒模型

CSS3弹性盒模型

CSS3 属性集合

box-orient设置或检索弹性盒模型对象的子元素的排列方式。

box-pack设置或检索弹性盒模型对象的子元素的对齐方式。

box-align设置或检索弹性盒模型对象的子元素的对齐方式。

box-flex设置或检索弹性盒模型对象的子元素如何分配其剩余空间。

box-direction设置或检索弹性盒模型对象的子元素的排列顺序是否反转。

如要使得弹性盒模型属性生效,需先定义父元素display的参数值为box或inline-box。

1.box-flex的运用 设置或检索弹性盒模型对象的子元素如何分配其剩余空间

         1.1 子元素没有固定的宽度,a1,a2,a3,按照一定的比例显示,如下图

        .one{

            width:500px;

            margin:0 auto;

            height:200px;

            background:rgba(51,51,51,0.2);

            display:-webkit-box;

            display:-moz-box;

            display:box;

}

.a1{

            -moz-box-flex:1;

            -webkit-box-flex:1;

            box-flex:1;

            background:rgba(255,0,0,1);

}

.a2{

    -moz-box-flex:2;

            -webkit-box-flex:2;

            box-flex:2;

            background:rgba(0,255,0,1);

}

.a3{

            -moz-box-flex:2;

            -webkit-box-flex:2;

            box-flex:2;

            background:rgba(0,0,255,1);

}

 

    1.2 部分子元素有固定宽度,且有编剧等,在使用box-flex,首先会把子元素占有的空间去掉,在进行按比例分,例如:b1的宽度为200px,b2的左右边距为20px,two的宽度为500px,b2,b3会按照500px-200px-20*2px 宽度进行划分,

        .two{

            width:500px;

            margin:10px auto;

            height:200px;

            background:rgba(51,51,51,0.2);

            display:-webkit-box;

            display:-moz-box;

            display:box;

            box-sizing:border-box;

            padding:20px;

}

.b1{

            width:200px;

            background:rgba(255,0,0,1);

}

.b2{

            -moz-box-flex:2;

            -webkit-box-flex:2;

            box-flex:2;

            margin:0 20px;

            background:rgba(0,255,0,1);

}

.b3{

            -moz-box-flex:2;

            -webkit-box-flex:2;

            box-flex:2;

            background:rgba(0,0,255,1);

}

 

2. box-orient的应用,设置或检索弹性盒模型对象的子元素的排列方式。

         有两种排列方式,水平和垂直

         box-orient:horizontal 水平排列

         box-orient:vertical  垂直排列

        .three{

            width:500px;

            margin:10px auto;

            height:200px;

            background:rgba(51,51,51,0.2);

            display:-webkit-box;

            display:-moz-box;

            display:box;

            box-sizing:border-box;

            padding:20px;

            -webkit-box-orient:horizontal;  /*水平排列*/

            -moz-box-orient:horizontal;

            box-orient:horizontal;

            -webkit-box-orient:vertical;    /*垂直排列*/

            -moz-box-orient:vertical;

            box-orient:vertical;

}

.c1{

            width:200px;

            height:30px;

            background:rgba(255,0,0,1);

}

.c2{

            -moz-box-flex:2;

            -webkit-box-flex:2;

            box-flex:2;

            margin:20px 0;

            background:rgba(0,255,0,1);

}

.c3{

            -moz-box-flex:2;

            -webkit-box-flex:2;

            box-flex:2;

            background:rgba(0,0,255,1);

}

垂直排列

 

水平排列

 

3. box-direction的运用,设置或检索弹性盒模型对象的子元素的排列顺序是否反转

         box-direction:normal;               //正常顺序

         box-direction:reverse;              //反过来顺序

         .four{

                  width:500px;

                  margin:10px auto;

                  height:200px;

                  background:rgba(51,51,51,0.2);

                  display:-webkit-box;

                  display:-moz-box;

                  display:box;

                  box-sizing:border-box;

                  padding:20px;

                  -webkit-box-direction:normal;         /*正常排列*/

                  -moz-box-direction:normal;

                  box-direction:normal;

                  -webkit-box-direction:reverse;        /*反过来排列*/

                  -moz-box-direction:reverse;

                  box-direction:reverse;

}

.d1{

                  width:200px;

                  background:rgba(255,0,0,1);

}

.d2{

                  -moz-box-flex:2;

                  -webkit-box-flex:2;

                  box-flex:2;

                  background:rgba(0,255,0,1);

}

.d3{

                  -moz-box-flex:2;

                  -webkit-box-flex:2;

                  box-flex:2;

                  background:rgba(0,0,255,1);

}

反过来显示

 

正常显示

 

4. box-align的运用,设置或检索弹性盒模型对象的子元素的对齐方式。

start: 设置弹性盒模型对象的子元素从开始位置对齐

center: 设置弹性盒模型对象的子元素居中对齐

end: 设置弹性盒模型对象的子元素从结束位置对齐

baseline: 设置弹性盒模型对象的子元素基线对齐

stretch: 设置弹性盒模型对象的子元素自适应父元素尺寸

.five{

         width:500px;

         margin:10px auto;

         height:200px;

         background:rgba(51,51,51,0.2);

         display:-webkit-box;

         display:-moz-box;

         display:box;

         box-sizing:border-box;

         padding:20px;

         -webkit-box-align:start;  /*设置弹性盒模型对象的子元素从开始位置对齐 */

         -moz-box-align:start;

         box-align:start;

         -webkit-box-align:center;         /*设置弹性盒模型对象的子元素居中对齐 */

         -moz-box-align:center;

         box-align:center;

         -webkit-box-align:end;     /*设置弹性盒模型对象的子元素从结束位置对齐 */

         -moz-box-align:end;

         box-align:end;

         -webkit-box-align:baseline;     /*设置弹性盒模型对象的子元素基线对齐*/

         -moz-box-align:baseline;

         box-align:baseline;

         -webkit-box-align:stretch;       /*设置弹性盒模型对象的子元素自适应父元素尺寸 */

         -moz-box-align:stretch;

         box-align:stretch;

}

.e1{

         width:200px;

         height:90px;

         background:rgba(255,0,0,1);

}

.e2{

         height:120px;

         -moz-box-flex:2;

         -webkit-box-flex:2;

         box-flex:2;

         background:rgba(0,255,0,1);

}

.e3{

         height:90px;

         -moz-box-flex:2;

         -webkit-box-flex:2;

         box-flex:2;

         background:rgba(0,0,255,1);

}

Start

 

Center

 

end

 

baseline

 

stretch

 

5. box-pack设置或检索弹性盒模型对象的子元素的对齐方式。

start:弹性盒模型对象的子元素从开始位置对齐(大部分情况等同于左对齐)

center:设置弹性盒模型对象的子元素居中对齐

end: 设置弹性盒模型对象的子元素从结束位置对齐(大部分情况等同于右对齐)

justify:设置或弹性盒模型对象的子元素两端对齐

.six{

    width:500px;

    margin:10px auto;

    height:200px;

    background:rgba(51,51,51,0.2);

    display:-webkit-box;

    display:-moz-box;

    display:box;

    box-sizing:border-box;

    padding:20px;

    -webkit-box-pack:start; /*设置弹性盒模型对象的子元素从开始位置对齐(大部分情况等同于左对齐) */

    -moz-box-pack:start;

    box-pack:start;

    -webkit-box-pack:center;    /*设置弹性盒模型对象的子元素居中对齐  */

    -moz-box-pack:center;

    box-pack:center;

    -webkit-box-pack:end;   /*设置弹性盒模型对象的子元素从结束位置对齐(大部分情况等同于右对齐) */

    -moz-box-pack:end;

    box-pack:end;

    -webkit-box-pack:justify;   /*设置或弹性盒模型对象的子元素两端对齐*/

    -moz-box-pack:justify;

    box-pack:justify;

}

.f1{

    width:200px;

    background:rgba(255,0,0,1);

}

.f2{

    width:50px;

    background:rgba(0,255,0,1);

}

.f3{

    width:90px;

    background:rgba(0,0,255,1);

}

start

 

center

 

end

 

juatify

 

posted @ 2015-12-16 14:52  ricesm  阅读(850)  评论(0编辑  收藏  举报