首页 前端知识 CSS定位布局详解

CSS定位布局详解

2024-06-08 09:06:07 前端知识 前端哥 714 826 我要收藏

CSS定位布局详解

  • 1.CSS定位布局概述
  • 2.固定定位:fixed
  • 3.相对定位:relative
  • 4.绝对定位:absolute
  • 5.静态定位:static

1.CSS定位布局概述

CSS定位使你可以将一个元素精确地放在页面上指定的地方。联合使用定位和浮动,能够创建多种高级而精确的布局。其中,定位布局共有4种方式。固定定位(fixed)。相对定位(relative)。绝对定位(absolute)。静态定位(static

这4种方式都是通过position属性来实现的,其中position属性取值如表:

在这里插入图片描述


2.固定定位:fixed

我们可以使用“position:fixed;”来实现固定定位。所谓的固定定位,指的是被固定的元素不会随着滚动条的拖动而改变位置

语法:

position:fixed;
top:像素值;
bottom:像素值;
left:像素值;
right:像素值;

position:fixed;”是结合top、bottom、left和right这4个属性一起使用的。其中,先使用“position:fixed;”让元素成为固定定位元素,接着使用top、bottom、left和right这4个属性来设置元素相对浏览器的位置

案例:

<!DOCTYPE html>
<html lang="utf-8">
<head>
    <title></title>
    <style>
        #first {
            width: 120px;
            height: 1800px;
            border: 1px solid gray;
            line-height: 600px;
            background-color: #B7F1FF;
        }

        #second {
            position: fixed; /*设置元素为固定定位*/
            top: 30px; /*距离浏览器顶部30px*/
            left: 160px; /*距离浏览器左部160px*/
            width: 60px;
            height: 60px;
            border: 1px solid silver;
            background-color: hotpink;
        }
    </style>
</head>
<body>
<div id="first">无定位的div元素</div>
<div id="second">固定定位的div元素</div>
</body>
</html>

我们尝试拖动浏览器的滚动条,其中,有固定定位的div元素不会有任何位置改变,但没有定位的div元素会发生位置改变

滚动前:

在这里插入图片描述

滚动后:

在这里插入图片描述


3.相对定位:relative

在CSS中,我们可以使用“position:relative;”来实现相对定位。所谓的相对定位,指的是该元素的位置是相对于它的原始位置计算而来的

语法:

position:relative;
top:像素值;
bottom;像素值;
left:像素值;
right:像素值;

“position:relative;”也是结合top、bottom、left和right这4个属性一起使用的,其中,先使用“position:relative;”让元素成为相对定位元素,接着使用top、bottom、left和right这4个属性来设置元素的相对定位

在默认情况下,固定定位元素的位置是相对浏览器而言的,而相对定位元素的位置是相对于原始位置而言的

案例1:默认情况下,元素有序排列:

<!DOCTYPE html>
<html lang="utf-8">
<head>
    <title></title>
    <style>
        #father {
            margin-top: 30px;
            margin-left: 30px;
            border: 1px solid silver;
            background-color: lightskyblue;
        }

        #father div {
            width: 100px;
            height: 60px;
            margin: 10px;
            background-color: hotpink;
            color: white;
            border: 1px solid white;
        }

        #son2 {
            /*这里设置son2的定位方式*/
        }
    </style>
</head>
<body>
<div id="father">
    <div id="son1">第1个无定位的div元素</div>
    <div id="son2">相对定位的div元素</div>
    <div id="son3">第2个无定位的div元素</div>
</div>
</body>
</html>

在这里插入图片描述

我们为第2个div元素加入相对定位,CSS代码如下:

#son2 {
    position: relative;
    top: 20px;
    left: 40px;
}

在这里插入图片描述

从这个例子可以看出,相对定位元素的top和left是相对于该元素的原始位置而言的,这一点和固定定位是不一样的


4.绝对定位:absolute

在CSS中,我们可以使用“position:absolute;”来实现绝对定位。绝对定位在几种定位方式中使用最为广泛,因为它能够很精确地把元素定位到任意你想要的位置

一个元素变成了绝对定位元素,这个元素就完全脱离文档流了,绝对定位元素的前面或后面的元素会认为这个元素并不存在,此时这个元素浮于其他元素上面,已经完全独立出来了

语法:

position:absolute;
top:像素值;
bottom:像素值;
left:像素值;
right:像素值;

“position:absolute;”是结合top、bottom、left和right这4个属性一起使用的,先使用“position:absolute”让元素成为绝对定位元素,接着使用top、bottom、left和right这4个属性来设置元素相对浏览器的位置

默认情况下,固定定位和绝对定位的位置是相对于浏览器而言的,而相对定位的位置是相对于原始位置而言的

案例1:默认情况下,div有序排列:

<!DOCTYPE html>
<html lang="utf-8">
<head>
    <title></title>
    <style>
        #father {
            padding: 15px;
            background-color: #0C6A9D;
            border: 1px solid silver;
        }

        #father div {
            padding: 10px;
        }

        #son1 {
            background-color: #FCD568;
        }

        #son2 {
            background-color: hotpink;
            /*在这里添加son2的定位方式*/
        }

        #son3 {
            background-color: lightskyblue;
        }
    </style>
</head>
<body>
<div id="father">
    <div id="son1">box1</div>
    <div id="son2">box2</div>
    <div id="son3">box3</div>
</div>
</body>
</html>

在这里插入图片描述

我们为第2个div元素加入绝对定位,CSS代码如下:

#son2
{
    position:absolute;
    top:20px;
    right:40px;
}

在这里插入图片描述


5.静态定位:static

在默认情况下,元素没有指定position属性时,这个元素就是静态定位的。也就是说,元素position属性的默认值是static

一般情况下,我们用不到“position:static”,不过在使用JavaScript来控制元素定位时,如果想要使元素从其他定位方式变成静态定位,就需要使用“position:static”来实现

转载请注明出处或者链接地址:https://www.qianduange.cn//article/11446.html
标签
评论
发布的文章

echarts柱状图自动轮播

2024-06-16 01:06:46

Echarts--markPoint属性

2024-06-16 01:06:45

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!