美文网首页
布局 - position

布局 - position

作者: Cicada丶 | 来源:发表于2018-07-07 01:25 被阅读0次

    • relative会缩裹内容,不会脱离原来的流不会浮动,只是内容便宜,元素本身不偏移
    • absolute会根据left等值撑开内容,会脱离原来的流浮动,但是不能通过清除浮动来消除
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
        </style>
    </head>
    <body>
        <!--position属性用来设置元素的位置,和android一样是以父元素右上角为原点,只有同时设置position和偏移值才会生效-->
        <!--
            1.absolute  相对于 static 定位以外的第一个父元素进行定位,否则相对于body进行定位,和浮动一样会脱离流,注意:不设置top等参数是不会脱离正常位置的。与浮动一样,会缩裹内容也就是需要设置宽度
            2.fixed     不能设置根元素,根元素就是浏览器整个窗口
            3.relative  相对于该元素正常位置进行偏移
            4.static    默认值,无定位,出现在正常流中
        -->
        <div style="background-color: black;width: 400px;height: 400px;">
            <div style="background-color: blue;width: 200px;height: 200px;"></div>
            <div style="background-color: red;width: 200px;height: 200px;position: absolute;left: 0px;top: 0px"></div>
        </div>
    <br/>
        <div style="background-color: black;width: 400px;height: 400px;position: relative;left: 50px;top: 50px">
            <div style="background-color: blue;width: 200px;height: 200px;">
                <div style="background-color: red;width: 100px;height: 100px;position: absolute;left: 0px;"></div>
            </div>
        </div>
        <br/>
    <!--fixed-->
        <div style="background-color: black;width: 400px;height: 400px;position: relative;left: 50px;top: 50px">
            <div style="background-color: blue;width: 200px;height: 200px;">
                <div style="background-color: red;width: 100px;height: 100px;position: fixed;left:0px;right: 0px;z-index: 9999"></div>
            </div>
        </div>
        <div style="background-color: red;width: 100px;height: 100px;position: fixed;top: 0px;left:0px;right: 0px;z-index: 9999"></div>
    </body>
    </html>
    
    • 代替高度100%宽度100%,完美解决方案

    圣杯布局

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
            html,body{
                margin: 0px;
                padding: 0px;
            }
        </style>
    </head>
    <body>
        <div style="width: 100%;height: 50px;background-color: black;position: absolute;top: 0px;left: 0px"></div>
        <div style="width: 100%;height: 50px;background-color: black;position: absolute;bottom: 0px;left: 0px"></div>
        <div style="width: 100%;background-color: red;position: absolute;top: 50px;bottom: 50px;left: 0px">
            <div style="width: 200px;background-color:green;position: absolute;top: 0px;bottom: 0px;left: 0px;overflow-y: auto;">
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
                <h1>A</h1>
            </div>
    
            <div style="width: 200px;background-color:blue;position: absolute;top: 0px;bottom: 0px;right: 0px">
                B
            </div>
            
            <div style="position: absolute;left: 200px;right: 200px;top: 0px;bottom: 0px;background-color: gray">
                C
            </div>
        </div> 
    </body>
    </html>
    
    • 结果


    单飞翼布局

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
            html,body{
                margin: 0px;
                padding: 0px;
            }
        </style>
    </head>
    <body>
        <div style="background-color: black;height: 50px;width: 100%;position: absolute;top: 0"></div>
        <div style="background-color: gray;position: absolute;top: 50px;bottom: 0px;left: 0px;width: 100%">
            <div style="background-color: red;position: absolute;top:0;bottom: 0px;left: 0px;width: 200px">
                <div style="overflow-y: auto;height: 100%"> 
                    <h1>A</h1>
                    <h1>A</h1>
                    <h1>A</h1>   
                    <h1>A</h1>
                    <h1>A</h1>
                    <h1>A</h1>
                    <h1>A</h1>
                    <h1>A</h1>
                    <h1>A</h1>
                    <h1>A</h1>
                    <h1>A</h1>
                    <h1>A</h1>
                    <h1>A</h1>
                    <h1>A</h1>
                    <h1>A</h1>
                </div>
            </div>
        </div>
    </body>
    </html>
    
    • 结果


    相关文章

      网友评论

          本文标题:布局 - position

          本文链接:https://www.haomeiwen.com/subject/drvzjftx.html