CSS 定位

本文详细介绍了CSS中的position属性,包括相对定位、绝对定位、固定定位的概念及其应用。绝对定位会脱离文档流,而固定定位在页面滚动时保持位置不变。重叠元素可通过z-index来控制堆叠顺序,决定前后显示。未指定z-index时,元素顺序影响显示。

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

CSS position 属性 

        这个属性定义建立元素布局所用的定位机制,任何元素都可以定位,不过绝对和固定元素会生成一个块级,而不论元素本身是什么类型;

CSS 定位

描述
relative相对定位,相对于原来的位置,不脱离标准文档流
absolute绝对定位,脱离标准文档流,不保留原本的位置
fixed

固定定位,相对于浏览器窗口进行定位

窗口滚动也不会移动

相对定位

  相对定位元素的定位是相对其正常位置,可以移动的相对定位元素的内容和相互重叠的元素,它    原本所占的空间不会改变。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{
            position: relative;
            top: 50px;
            left: 50px;
            width: 300px;
            height: 300px;
            background-color: pink;
        }
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>
</head>
<body>
<div class="box"></div>
<div class="box1"></div>
</body>
</html>

绝对定位

        无父级或者无父级无定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .father {
            margin-top: 50px;
            margin-left: 50px;
            width: 500px;
            height: 500px;
            background-color: skyblue;
        }

        .son {
            position: absolute;
            top: 50px;
            left: 50px;
            width: 200px;
            height: 200px;
            background-color: pink;
        }
    </style>
</head>
<body>
<div class="father">
    <div class="son"></div>
</div>

</body>
</html>

父级有定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .yeye{
            position: relative;
            width: 800px;
            height: 800px;
            background-color: hotpink;
            padding: 50px;
        }
        .father{

            width: 500px;
            height: 500px;
            background-color: skyblue;
        }
        .son{
            position: absolute;
            left: 30px;
            bottom: 10px;
            width: 200px;
            height: 200px;
            background-color: pink;
        }
    </style>
</head>
<body>
<div class="yeye">
    <div class="father">
        <div class="son"></div>
    </div>
</div>
</body>
</html>

 

固定定位

        即使滚动元素也不会改变位置;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .divA{
            position: fixed;
            top: 100px;
            left: 40px;
            background-color: pink;
        }
    </style>
</head>
<body>
<div class="divA">
    <img src="img/1.webp">
</div>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>
<p>这是一段文字</p><p>这是一段文字</p>

</body>
</html>

 

 

 重叠的元素

        元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素

        z-index 属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面)

        一个元素可以有正数或负数的堆叠顺序:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            position: absolute;
            top: 0;
            left: 0;

        }
        .divA{
            width: 200px;
            height: 200px;
            background-color: green;
            z-index: 1;
        }
        .divB{
            width: 200px;
            height: 80px;
            top: 100px;
            z-index: 2;
            background-color: skyblue;
        }
        .divC{
            width: 200px;
            height: 30px;
            top: 130px;
            z-index: 3;
            background-color: pink;
        }
    </style>
</head>
<body>
<div class="divA">
</div>
<div class="divB">
</div>
<div class="divC">
</div>
</body>
</html>

注意

        如果两个定位元素重叠,没有指定 z - index,最后定位在 HTML 代码中的元素将被显示在最前面。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值