美文网首页
二十八、定位(下)

二十八、定位(下)

作者: honest涛 | 来源:发表于2021-03-10 21:46 被阅读0次

    一、定位

    1.1、定位叠放次序 z-index

    在使用定位布局时,可能会出现盒子重叠的情况。此时, 可以使用\color{red}{z-index}来控制盒子的前后次序(z轴)

    语法:{ z-index:1; }

    • 数值可以是正整数、负整数或0,默认是 auto,数值越大,盒子越靠上。
    • 如果属性值相同,则按照书写顺序,后来居上。
    • 数字后面不能加单位
    • 只有定位的盒子才有z-index属性


      image.png
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>定位的堆叠顺序</title>
        <style>
            .box {
                position: absolute;
                top: 0;
                left: 0;
                width: 200px;
                height: 200px;
            }
            .xiongda {
                background-color: red;
                z-index: 1;
            }
            .xionger {
                background-color: green;
                left: 50px;
                top: 50px;
                z-index: 2;
            }
            .qiangge {
                background-color:blue;
                left: 100px;
                top: 100px;
            }
        </style>
    </head>
    <body>
        <div class="box xiongda">熊大</div>
        <div class="box xionger">熊二</div>
        <div class="box qiangge">光头强</div>
    </body>
    </html>
    

    1.2、定位的拓展

    绝对定位的盒子居中
    加了定位的盒子不能通过\color{red}{margin:0 auto}水平居中,但是可以通过以下计算方法实现水平和垂直居中。
    ①:left:50%;让盒子的左侧移动到父级元素的水平中心位置。
    ②:margin-left:-100px;让盒子向左移动自身宽度的一半。

    image.png
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>绝对定位水平垂直居中</title>
        <style>
            .box {
                position: absolute;
                /* 1. left 走 50%  父容器宽度的一半 */
                left: 50%;
                /* 2. margin 负值 往左边走 自己盒子宽度的一半 */
                margin-left: -100px;
                top: 50%;
                margin-top: -100px;
                width: 200px;
                height: 200px;
                background-color: pink;
                /* margin: auto; */
            }
        </style>
    </head>
    <body>
        <div class="box"></div>
    </body>
    </html>
    

    定位特殊特性
    绝对定位和固定定位也和浮动类似。
    1.行内元素添加绝对或者固定定位,可以直接设置高度和宽度。
    2.块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小。

    image.png
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>定位的特殊特性</title>
        <style>
            span {
                position: absolute;
                top: 300px;
                width: 200px;
                height: 150px;
                background-color: pink;
            }
            div {
                position: absolute;
                background-color: skyblue;
            }
        </style>
    </head>
    <body>
        <span>123</span>
    
        <div>abcd</div>
    </body>
    </html>
    

    脱标的盒子不会触发外边距塌陷
    浮动元素,绝对定位(固定定位)元素的都不会触发外边距合并的问题。
    绝对定位(固定定位)会完全压住盒子
    浮动元素不同,只会压住它下面 标准流的盒子,但是不会压住下面标准流盒子里面的文字(图片)
    但是绝对定位(固定定位)会压住下面标准流所有的内容。
    浮动之所以不会压住文字,因为浮动产生的目的最初是为了做文字环绕效果的。文字会围绕浮动元素。

    相关文章

      网友评论

          本文标题:二十八、定位(下)

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