position定位与子绝父相

属性定义及使用说明

position属性指定一个元素(静态的,相对的,绝对或固定)的定位方法的类型。

属性值

描述
absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

fixed

生成固定定位的元素,相对于浏览器窗口进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

relative

生成相对定位的元素,相对于其正常位置进行定位。

因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

 偏移值

        left:数字+px   距离左边的距离

        right:数字+px  距离右边的距离

        top:数字+px 距离上边的距离

        bottom:数字+px 距离下边的距离 

相对定位

        相对于自身之前位置移动

代码:

 position: relative;

特点:

        1.需要配合方位属性实现移动

        2.相对于自己原来位置进行移动

        3.在页面中占位置 → 没有脱标 

应用场景:

        1.配合绝对定位组CP(子绝父相)

        2.用于小范围的移动

        

示例:设计一个宽高400px的红色盒子

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 400px;
            height: 400px;
            background-color: red;
            
        }
    </style>
</head>

<body>
    <div class="box">

    </div>
</body>

</html>

初始位置为

现在给它加一个相对定位,要求距离上边和左边分开100px

 .box {
       width: 400px;
       height: 400px;
       background-color: red;
       position: relative;
       top: 100px;
       left: 100px;
        }

效果如下

 可以看到盒子在原来的位置上距离上边和左边分开了100px

 绝对定位

        绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>

代码

 position: absolute;

特点:

        1.需要配合方位属性实现移动

        2.默认相对于浏览器可视区域进行移动

        3.在页面中不占位置 → 已经脱标

应用场景:

        配合绝对定位组CP(子绝父相)

示例:

在原先的代码上给红色box盒子添加一个子元素黑色boxSon盒子

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 400px;
            height: 400px;
            background-color: red;
            position: relative;
            top: 100px;
            left: 100px;
        }

        .boxSon {
            width: 100px;
            height: 100px;
            background-color: rgb(17, 16, 16);

        }
    </style>
</head>

<body>
    <div class="box">
        <div class="boxSon">
        </div>
    </div>
</body>

</html>

初始效果如下

 给子盒子boxSon添加绝对定位后,它会相对于父元素红色box进行移动,这里给它设定距离父元素上边和左边100px

 .boxSon {
            width: 100px;
            height: 100px;
            background-color: rgb(17, 16, 16);
            position: absolute;
            top: 100px;
            left: 100px;
        }

效果如下

 子绝父相

场景:

        让子元素相对于父元素进行自由移动

含义:

        子元素:绝对定位

        父元素:相对定位

子绝父相好处:

         父元素是相对定位,则对网页布局影响最小,儿元素是绝对定位,跟随父元素移动,样式不会随着移动而改变

示例:

        让上述的红色box对整个<html>页面向左向下移动1000px,子元素黑色boxSon在父元素红色box内会保持原有位置不变

  .box {
            width: 400px;
            height: 400px;
            background-color: red;
            position: relative;
            top: 500px;
            left: 500px;
        }

效果

 子绝父相的居中方式

       1.子绝父相

        2.先让子盒子往右移动父盒子的一半 left:50%

        3.再让子盒子往左移动自己的一半 transform:translateX(-50%)

 示例:让黑色盒子在红色盒子中居中,即使改变黑色盒子大小,居中位置仍不变

   .boxSon {
            width: 100px;
            height: 100px;
            background-color: rgb(17, 16, 16);
            position: absolute;
            left: 50%;
            transform: translateX(-50%);
        }

固定定位

        元素的位置相对于浏览器窗口是固定位置

        即使窗口是滚动的它也不会移动

代码

position:fixed

特点:

        1.需要配合方位属性实现移动

        2.相对于浏览器可视区域进行移动

        3.在页面中不占位置 → 已经脱标

应用场景:

        让盒子固定在屏幕中的某个位置,比如网页的页脚或者头部导航栏

设置一个盒子,让它固定在右边且距离下边100px


        .boxRight {
            width: 50px;
            height: 500px;
            background-color: rgb(30, 224, 30);
            position: fixed;
            right: 0;
            bottom: 100px;
        }

效果如下

当缩小屏幕时,绿色长条位置不变

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值