📜  CSS中相对位置、绝对位置和固定位置的区别(1)

📅  最后修改于: 2023-12-03 15:30:12.823000             🧑  作者: Mango

CSS中相对位置、绝对位置和固定位置的区别

CSS中的定位指的是如何确定元素在网页中的位置。相对定位、绝对定位和固定定位是CSS中三种不同的定位方式。

相对定位

相对定位指的是相对于元素原来的位置进行定位。在相对定位中,元素的定位基于元素所在的正常文档流。当为元素设置相对定位时,可以使用top、bottom、left和right属性来指定元素相对于原来位置的偏移量。

下面是一个相对定位的例子:

<style>
    .relative {
        position: relative;
        left: 50px;
        top: 50px;
        border: 1px solid red;
    }
</style>
<div class="relative">我是相对定位元素</div>

在这个例子中,.relative元素被设置为相对定位,left和top属性分别设置为50px,导致元素相对于原来位置向右和向下移动了50个像素。

绝对定位

绝对定位相对于最近的“已定位”祖先元素进行定位。如果元素没有“已定位”的祖先元素,则相对于文档的body元素进行定位。在绝对定位中,元素的定位与正常文档流无关。当为元素设置绝对定位时,可以使用top、bottom、left和right属性来指定元素相对于其“已定位”祖先元素的偏移量。

下面是一个绝对定位的例子:

<style>
    .absolute {
        position: absolute;
        left: 50px;
        top: 50px;
        border: 1px solid red;
    }

    .relative {
        position: relative;
        width: 200px;
        height: 200px;
        border: 1px solid blue;
    }
</style>
<div class="relative">
    <div class="absolute">我是绝对定位元素</div>
</div>

在这个例子中,.absolute元素被设置为绝对定位,并设置了left和top属性,使其相对于.relative元素的左上角向右和向下移动了50个像素。.relative元素自身也是一个定位元素,它被设置为相对定位。因此,.absolute元素相对于.relative元素进行定位。

固定定位

固定定位是相对于浏览器窗口的定位。在滚动页面时,固定定位的元素不会移动。当为元素设置固定定位时,可以使用top、bottom、left和right属性来指定元素相对于浏览器窗口的偏移量。

下面是一个固定定位的例子:

<style>
    .fixed {
        position: fixed;
        right: 50px;
        bottom: 50px;
        border: 1px solid red;
    }
</style>
<div class="fixed">我是固定定位元素</div>

在这个例子中,.fixed元素被设置为固定定位,并设置了right和bottom属性,使其相对于浏览器窗口的右下角移动了50个像素。无论页面如何滚动,该元素都会保持在相同的位置。

总结

相对定位、绝对定位和固定定位都是CSS中常用的定位方式。相对定位是相对于元素原来的位置进行定位,绝对定位是相对于最近的“已定位”祖先元素进行定位,固定定位是相对于浏览器窗口的定位。可以根据具体情况来选择不同的定位方式来进行定位。