CSS定位

本文详细介绍了CSS中的四种定位方式:静态定位、相对定位、绝对定位和固定定位,以及它们的特点和应用场景。相对定位保持元素原有位置但可调整;绝对定位脱离常规文档流,依赖于最近的定位父元素或浏览器窗口;固定定位始终相对于浏览器窗口定位。此外,还讨论了如何使用z-index调整元素的层级关系,以及解决绝对定位元素居中问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、定位介绍

1.网页常见布局

b47a902168ee482293a0817e6abf20b5.png        

  2.运用场景

5c7a5f78d77a411eacd2c04bd80c9a2c.png 

二、定位position

属性值

静态定位(不定位)static
相对定位(自恋型)relative
绝对定位(拼爹型)absolute
固定定位(死心眼型)fixed

 方位属性

554cb8b2d9274bf3acd0515e4d340560.png

 1、相对定位 position-relative(por)

        特点:

  • 还占着原来的位置
  • 仍然保留原本标签的显示特点(div还是独占一行)
  • 改变位置参照直接原本的位置 

2、绝对定位 position-absolute(poa) 

        特点:

  • 需要配合方位属性实现移动
  • 默认相对于浏览器可视区域进行移动(父级有定位跟父级->子绝夫相)
  • 在页面中不占位置 → 已经脱标
  • 具备行内块特点

       子绝夫相:

     查找父级方式:就近原则找定位的父级(爷等)如果逐层找不到就相对于浏览器进行移动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .father{
            /* position: relative; */
            width: 500px;
            height: 500px;
            background-color: pink;
        }
        .son{
            /* 工作中一般用relative */
            position: relative;
            width: 300px;
            height: 300px;
            background-color: blue;
        }
        .sun{
            /* son有定位 */
            position: absolute;
            right: 20px;
            width: 100px;
            height: 100px;
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son">
            <div class="sun"></div>
        </div>
    </div>
</body>
</html>

        子绝父相——居中问题:

        问题:绝对定位的盒子不能使用左右margin auto 居中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            /* 绝对定位的盒子不能使用左右margin auto 居中 */
            position: absolute;
            /* margin: 0 auto; */
            /* 1.left 盒子移动到浏览器中间偏右 */
            left: 50%;
            /* 2.margin 盒子向右移动:自己宽度的一半 */
            /* margin-left: -150px; */
            top: 50%;
            /* 2.位移:自己宽度高度的一半 */
            transform: translate(-50%,-50%);

            width: 300px;
            height: 300px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

3、固定定位 position-fixed(pof)

        特点:

  • 需要配合方位属性实现移动(left、top..)
  • 相对于浏览器可视区域进行移动
  • 在页面中不占位置 → 已经脱标
  •  
    具备行内块特点
     

三、元素层级关系 

层级关系:

7024817015344f729a8504f6f4067f7e.png 

 更改层级:

2437ca0cd5a0472ea1c4b3e5ccaf3532.png

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            
            width: 200px;
            height: 200px;
        }

        .one {
            position: absolute;
            left: 20px;
            top: 50px;

            z-index: 1;

            background-color: pink;
        }

        .two {
            position: absolute;
            left: 50px;
            top: 100px;
            
            background-color: skyblue;
        }

        /* 
            默认情况下, 定位的盒子  后来者居上 ,
            z-index:整数; 取值越大, 显示顺序越靠上, z-index的默认值是0
            注意: z-index必须配合定位才生效
        */
    </style>
</head>
<body>
    <div class="one">one</div>
    <div class="two">two</div>
</body>
</html>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值