37.CSS3弹性伸缩布局【上】

                                                        第二十九章    CSS3弹性伸缩布局【上】

一、布局简介

        Flexbox布局,即弹性伸缩布局模型(Flexible Box,他能更有效的实现布局,但这个布局还处于W3C的草案阶段,并且分旧版本,新版本,混合过渡阶段三种不同的编码。

                              IE      Firefox     Chrome      Opera      Safari     

         支持需带前缀                425       431     1518      5.17+

         支持不带前缀                                             

       //以上数据来自CSS手册上的。

 

      首先,第一步先创建一段内容,分成三个区域。

 

       //HTML部分

<div>

<p>。。。</p>

<p>。。。</p>

<p>。。。</p>

</div>

 

       //css部分

p{

width: 150px;

border: 1px solid gray;

background-color: silver;

margin: 5px;

padding: 5px;

}

 

 

二、旧版本

       属性和属性值为display:box,20097月拟定的草案。

       首先,要将几个需要布局模块的父元素设置一下容器属性display

          1box       : 将容器盒模型作为块级弹性伸缩盒显示(旧版本)

          2inline-box: 将容器盒模型作为内联级弹性伸缩盒显示(旧版本)

       块级占用整行的,类似<div>元素,而内联级不占用整行,类似<span>元素。但我们设置了整个盒子,他们都不占用,保持一致。

          //设置弹性,以火狐为例

            例、div{

               display:-moz-box;      //弹性布局

                }

 

         1box-orient属性    主要实现盒子内部元素的波动方向

          //设置垂直流动

                div{

            -webkit-box-orient:vertical;

                }

           (1)horizontal      伸缩项目从左到右水平排列   

           (2)vertical        伸缩项目从上到下垂直排列

           (3)inline-axis     伸缩项目沿着内联轴排列显示

           (4)block-axis      伸缩项目沿着块轴排列显示

 

         2box-direction   设置伸缩容易中的流动顺序

           //设置逆序

                div{

            -moz-box-direction:reverse;

                }

           (1)normal   默认值,正常顺序  

           (2)reverse  逆序

  

         3box-pack    用于伸缩项目的分布方式

           //分布方式已结束位置靠齐

               div{

                    -moz-box-pack:end;

               }

           (1)start     伸缩项目以起始点靠齐

           (2)end       伸缩项目以结束点靠齐

           (3)center    伸缩项目以中心点靠齐

           (4)justify   伸缩项目平局分布,-webkit-支持,-moz-不支持

 

         4box-align    用来处理伸缩容器的额外时间

              //居中对齐,清理上下额外空间

                div{

                    -moz-box-align:center;

                }

           (1)start     伸缩项目以顶部为基准,清理下部额外空间

           (2)end       伸缩项目以底部为基准,清理上部额外空间

           (3)center    伸缩项目以中部为基准,平均清理上下部恩爱空间

           (4)baseline  伸缩项目以基线为基准,清理额外空间

           (5)stretch   伸缩项目填充整个容器,默认

 

         5box-flex     可以使用浮点数分配伸缩项目的比例

               //设置每个伸缩项目占用比例

               p:nth-child(1){

                    -moz-box-flex1;    //相当于占了20%     

               }

               p:nth-child(2){

                    -moz-box-flex3;    //相当于占了60%

               }

               p:nth-child(3){

                    -moz-box-flex1;    //相当于占了20%

               }              

 

          6box-ordinal-group    可以设置伸缩项目的显示位置

               //将第一个位置的元素,跳转到第二个位置,第三个不变

               p:nth-child(1){

                    -moz-box-flex1

                    -moz-box-ordinal-group2;   

               }

               p:nth-child(2){

                    -moz-box-flex3

                    -moz-box-ordinal-group1;   

               }

               p:nth-child(3){

                    -moz-box-flex1

                    -moz-box-ordinal-group3;   

               }

 

posted @ 2018-02-28 18:54  君灬莫笑  阅读(186)  评论(0编辑  收藏  举报