flexboxWeb前端之路vue前端技术分享

弹性盒模型案例讲解

2017-07-06  本文已影响82人  行走的巨象

弹性盒模型的设置的方法为display:box 或display:inline-box
box-orient 为定义盒模型的布局方向,由于盒模型的只有在webkit或moz的内核才生效,故我们在使用这个属性之前要在它前面加上-webkit-或-moz-
box-orient的属性值有horizontal(水平),vertical(垂直)
下方代码是块状元素水平排列的,大家可以自己尝试一下改为垂直排列

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .box{
                width: 900px;
                height: 600px;
                border: 1px solid #CCCCCC;
                display: -webkit-box;
                -webkit-box-orient: horizontal;
            }
            .box div{
                text-align: center;
                margin: 10px;
                width: 100px;
                height: 100px;
                line-height: 100px;
                color: #FFFFFF;
                background: #00A72B;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
        </div>
        
    </body>
</html> 
css3_box1.png

box-direction 为元素的排列顺序,属性值normal表示正序,reverse表示反序

    <style>
        .box{
            width: 800px;
            height: 600px;
            border: 1px solid #CCCCCC;
            display: -webkit-box;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: reverse; /*元素排列顺序*/
        }
        .box div{
            text-align: center;
            margin: 10px;
            width: 100px;
            height: 100px;
            line-height: 100px;
            color: #FFFFFF;
            background: #00A72B;
        }
    </style>  
css3_box2.png

box-ordinal-group 设置元素的具体位置

        <style>
            .box{
                width: 800px;
                height: 600px;
                border: 1px solid #CCCCCC;
                display: -webkit-box;
                -webkit-box-orient: horizontal;
            }
            .box div{
                text-align: center;
                margin: 10px;
                width: 100px;
                height: 100px;
                line-height: 100px;
                color: #FFFFFF;
                background: #00A72B;
            }
            .box div:nth-of-type(6){    /*把第六个div放到第一位,以此类推*/
                -webkit-box-ordinal-group: 1;
            }
            .box div:nth-of-type(5){
                -webkit-box-ordinal-group: 2;
            }
            .box div:nth-of-type(4){
                -webkit-box-ordinal-group: 3;
            }
            .box div:nth-of-type(1){
                -webkit-box-ordinal-group: 6;
            }
            .box div:nth-of-type(2){
                -webkit-box-ordinal-group: 5;
            }
            .box div:nth-of-type(3){
                -webkit-box-ordinal-group: 4;
            }
        </style>  
css3_box2.png

box-flex 定义盒子的弹性空间
子元素的尺寸=盒子的尺寸*子元素的box-flex属性值 / 所有子元素的box-flex属性值的和

        <style>
            .box{
                width: 800px;
                height: 600px;
                border: 1px solid #CCCCCC;
                display: -webkit-box;
                -webkit-box-orient: horizontal;
            }
            .box div{
                text-align: center;
                margin: 10px;
                width: 100px;
                height: 100px;
                line-height: 100px;
                color: #FFFFFF;
                background: #00A72B;
            }
            .box div:nth-of-type(1){
                -webkit-box-flex: 1;    /*如果所有数字都一样,则横向平均分布*/
            }
            .box div:nth-of-type(2){
                -webkit-box-flex: 1;
            }
            .box div:nth-of-type(3){
                -webkit-box-flex: 1;
            }
            .box div:nth-of-type(4){
                -webkit-box-flex: 1;
            }
            .box div:nth-of-type(5){
                -webkit-box-flex: 1;
            }
            .box div:nth-of-type(6){
                -webkit-box-flex: 1;
            }
        </style>
css3_box3.png
        <style>
            .box{
                width: 800px;
                height: 600px;
                border: 1px solid #CCCCCC;
                display: -webkit-box;
                -webkit-box-orient: horizontal;
            }
            .box div{
                text-align: center;
                margin: 10px;
                height: 100px;
                line-height: 100px;
                color: #FFFFFF;
                background: #00A72B;
            }
            .box div:nth-of-type(1){
                -webkit-box-flex: 1;        /*占整体1/9*/
            }
            .box div:nth-of-type(2){        /*占整体1/9*/
                -webkit-box-flex: 1;
            }
            .box div:nth-of-type(3){        /*此div占整体5/9*/
                -webkit-box-flex: 5;
            }
            .box div:nth-of-type(4){        /*占整体1/9*/
                -webkit-box-flex: 1;
            }
            .box div:nth-of-type(5){        /*占整体1/9*/
                -webkit-box-flex: 1;
            }
            
        </style>  
css3_box4.png

box-pack 对盒子富裕的空间进行管理
start 所有子元素在盒子左侧显示,富裕空间在右侧
end 所有子元素在盒子右侧显示,富裕空间在左侧
center 所有子元素居中
justify 富余空间在子元素之间平均分布
以下案例只展示center和justify,其余请自行尝试

        <style>
            .box{
                width: 800px;
                height: 600px;
                border: 1px solid #CCCCCC;
                display: -webkit-box;
                -webkit-box-orient: horizontal;
                -webkit-box-pack: center;
            }
            .box div{
                text-align: center;
                width: 100px;
                margin: 10px;
                height: 100px;
                line-height: 100px;
                color: #FFFFFF;
                background: #00A72B;
            }
            
        </style> 
css3_box5.png
    <style>
            .box{
                width: 800px;
                height: 600px;
                border: 1px solid #CCCCCC;
                display: -webkit-box;
                -webkit-box-orient: horizontal;
                -webkit-box-pack: justify;
            }
            .box div{
                text-align: center;
                width: 100px;
                margin: 10px;
                height: 100px;
                line-height: 100px;
                color: #FFFFFF;
                background: #00A72B;
            }
            
        </style>  
css3_box6.png

box-align 在垂直方向上对元素的位置进行管理
start 所有子元素在据顶
end 所有子元素在据底
center 所有子元素居中

        <style>
            .box{
                width: 800px;
                height: 600px;
                border: 1px solid #CCCCCC;
                display: -webkit-box;
                -webkit-box-orient: horizontal;
                -webkit-box-align: center;
            }
            .box div{
                text-align: center;
                width: 100px;
                margin: 10px;
                height: 100px;
                line-height: 100px;
                color: #FFFFFF;
                background: #00A72B;
            }
            
        </style>  
css3_box7.png

让div盒子水平垂直居中

    <style>
        .box{
            width: 800px;
            height: 600px;
            border: 1px solid #CCCCCC;
            display: -webkit-box;
            -webkit-box-orient: horizontal;
            -webkit-box-align: center;   /*垂直居中*/
            -webkit-box-pack: center;   /*水平居中*/
        }
        .box div{
            text-align: center;
            width: 100px;
            margin: 10px;
            height: 100px;
            line-height: 100px;
            color: #FFFFFF;
            background: #00A72B;
        }
        
    </style>  
css3_box8.png

以上就是我要讲的弹性盒模型,谢谢大家的阅读!

上一篇下一篇

猜你喜欢

热点阅读