zoukankan      html  css  js  c++  java
  • 被废了的display:box弹性盒模型

      这几天在研究弹性布局,看书中写的是display:box,结果在chrome浏览器中是正常的,想着移动端大部分浏览器也是webkit内核的应该也没啥问题,结果确实没问题,但仔细一看,高度呢?好吧,严重的bug,高度不起作用了(特殊情况)。再查查资料原来w3c已经废了display:box;换成display:flex了,只好重新学过了,以后还是看这个吧http://www.w3schools.com/国外站请自备神器。

      

      UC啥的浏览器用的还是display:box最新的是display:flex,所以移动端还得写两份。当然你也可以使用flex.css库它已经帮你解决兼容性了,但项目小的话还是自己写吧。

    下面是写的小dome。

    使用box-align需要配合box-orient使用
    box-align属性是在相反方向的轴线上发生作用的。如果box-orient设置为horizontal,box-align就会把空间分配在垂直轴上,反之亦然。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>弹性盒模型</title>
        <link rel="stylesheet" href="box-dome.css">
    </head>
    <body>
        <!-- display:box; -->
        <section id="test_1">
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
        </section>
        <!-- 平分 -->
        <section id="test_2">
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
        </section>
        <!-- 左右1份中间3份 -->
        <section id="test_3">
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
        </section>
        <!-- 第一个固定,其他自适应 -->
        <section id="test_4">
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
        </section>
        <!-- box-orient:vertical; -->
        <section id="test_5">
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
        </section>
        <!-- box-orient:horizontal; -->
        <section id="test_6">
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
        </section>
        <!-- box-direction:reverse; -->
        <section id="test_7">
            <p>1 另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>2 另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>3 另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
        </section>
        <!-- box-ordinal-group:number; -->
        <section id="test_8">
            <p>1 另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>2 另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
            <p>3 另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
        </section>
        
        <!-- 使用box-align需要配合box-orient使用 -->
        
        <!-- orient-horizontal -- align-end -->
        <section id="test_9">
            <p>1 另外要注意的事情是子元素溢出了父元素之外,因为它的父元素的宽度是600px,并且每个子元素都是200px宽,还要加上边距、填充和边框,所以组合起来的方框宽度已经超过了父元素的宽度</p>
        </section>
        <!-- orient-horizontal -- align-center -->
        <section id="test_10">
            <p>另外要注意的事情</p>
        </section>
        <!-- orient-vertical -- align-center -->
        <section id="test_11">
            <p>另外要注意的事情</p>
        </section>
        <!-- orient-vertical -- align-center -->
        <section id="test_12">
            <p>另外要注意的事情</p>
        </section>
        <!-- 水平垂直居中 -->
        <section id="test_13">
            <div>
                <p>另外要注意的事情</p>
            </div>
        </section>
    </body>
    </html>
    /* webkit-box */
    #test_1{
        display:-webkit-box;
    
        width:600px;
    }
    #test_1>p{
        width:200px;
        margin:0 10px;
        text-align:justify;
    }
    #test_1>p::after{
        content:'';
        display:inline-block;
        width:100%;
    }
    
    /* 平分 */
    #test_2{
        display:-webkit-box;
    
        outline:1px solid #ccc;
    }
    #test_2>p{
        -webkit-box-flex:1;
    
        margin:10px;
        border-right:1px solid #ccc;
    }
    
    /* 左右1份中间3份 */
    #test_3{
        display:-webkit-box;
    
        outline:1px solid #ccc;
    }
    #test_3>p{
        -webkit-box-flex:1;
        
        width:100px;
    
        margin:10px;
        border-right:1px solid #ccc;
    }
    #test_3>p:first-child+p{
        -webkit-box-flex:3;
    }
    
    /* 第一个固定,其他自适应 */
    #test_4{
        display:-webkit-box;
    
        outline:1px solid #ccc;
    }
    #test_4>p{
        -webkit-box-flex:1;
        
        margin:10px;
        border-right:1px solid #ccc;
    }
    #test_4>p:first-child{
        -webkit-box-flex:0;
    
        width:100px;
    }
    
    /* box-orient:vertical; */
    #test_5{
        display:-webkit-box;
        -webkit-box-orient:vertical;
        
        width:500px;
        outline:1px solid #ccc;
    }
    #test_5>p{
        -webkit-box-flex:1;
    
        margin:10px;
        border-right:1px solid #ccc;
    }
    
    /* box-orient:horizontal;水平 */
    #test_6{
        display:-webkit-box;
        -webkit-box-orient:horizontal;
        
        width:500px;
        outline:1px solid #ccc;
    }
    #test_6>p{
        -webkit-box-flex:1;
    
        margin:10px;
        border-right:1px solid #ccc;
    }
    
    /* box-direction:reverse;垂直 */
    #test_7{
        display:-webkit-box;
        -webkit-box-direction:reverse;
        
        width:500px;
        outline:1px solid #ccc;
    }
    #test_7>p{
        -webkit-box-flex:1;
    
        margin:10px;
        border-right:1px solid #ccc;
    }
    
    /* box-ordinal-group:number; */
    #test_8{
        display:-webkit-box;
        
        width:500px;
        outline:1px solid #ccc;
    }
    #test_8>p{
        -webkit-box-flex:1;
    
        margin:10px;
        border-right:1px solid #ccc;
    }
    #test_8>p:first-child{
        -webkit-box-ordinal-group:2;
    }
    #test_8>p:first-child+p{
        -webkit-box-ordinal-group:1;
    }
    #test_8>p:last-child{
        -webkit-box-ordinal-group:3;
    }
    
    /* 使用box-align需要配合box-orient使用 */
    
    /* orient-horizontal -- align-end */
    #test_9{
        display:-webkit-box;
        -webkit-box-orient:horizontal;
        -webkit-box-align:end;
        
        height:100px;
        outline:1px solid #ccc;
    }
    #test_9>p{
        -webkit-box-flex:1;
        
        margin:10px;
        border-right:1px solid #ccc;
    }
    
    /* orient-horizontal -- align-center */
    #test_10{
        display:-webkit-box;
        -webkit-box-orient:horizontal;
        -webkit-box-align:center;
        
        height:100px;
        outline:1px solid #ccc;
    }
    #test_10>p{
        -webkit-box-flex:1;
        
        margin:10px;
        border-right:1px solid #ccc;
    }
    
    /* orient-vertical -- align-center */
    #test_11{
        display:-webkit-box;
        -webkit-box-orient:vertical;
        -webkit-box-align:end;
        
        height:100px;
        outline:1px solid #ccc;
    }
    #test_11>p{
        -webkit-box-flex:1;
        
        margin:10px;
        border-right:1px solid #ccc;
    }
    
    /* orient-vertical -- align-center */
    #test_12{
        display:-webkit-box;
        -webkit-box-orient:vertical;
        -webkit-box-align:center;
        
        height:100px;
        outline:1px solid #ccc;
    }
    #test_12>p{
        -webkit-box-flex:1;
        
        margin:10px;
        border-right:1px solid #ccc;
    }
    
    /* 水平垂直居中 */
    #test_13{
        display:-webkit-box;
        -webkit-box-orient:horizontal;
        -webkit-box-align:center;
        
        height:100px;
        outline:1px solid #ccc;
    }
    #test_13>div{
        -webkit-box-flex:1;
        display:-webkit-box;
        -webkit-box-orient:vertical;
        -webkit-box-align:center;
        
        margin:10px;
        /*margin:0 auto;*/
    }
  • 相关阅读:
    C/C++ 知识点---存储区
    Objective-C中的@property和@synthesize用法
    C/C++ 知识点---数组与指针
    C/C++ 知识点---C语言关键字(32个)
    js里json和eval()
    js--冒泡排序
    js数学公式-曲线运动
    事件绑定兼容(事件流的机制;事件委托
    2 获取元素在页面中的位置
    Dom关于位置和尺寸的api
  • 原文地址:https://www.cnblogs.com/pssp/p/5864844.html
Copyright © 2011-2022 走看看