【前端初学者】【CSS笔记】之定位:相对定位、绝对定位、固定定位、静态定位及粘性定位(上)

目录

(上篇)

一、相对定位 ( relative )

1.1 设置方式:

1.2 相对定位元素定位的参考点:

1.3 相对定位的特点:

1.4 相对定位的举例:

二、绝对定位( absolute )

2.1 设置方式:

2.2 元素定位的参考点:

2.3 绝对定位的特点:

2.4 绝对定位的举例:

2.5 设置绝对定位元素在包含块中居中(水平与垂直)

三、固定定位( fixed )

3.1 设置方式:

3.2 元素定位的参考点:

3.3 固定定位的特点:

3.4 固定定位的举例:

3.5 设置固定定位元素在包含块中居中(水平与垂直)


一、相对定位 ( relative )

1.1 设置方式:

position:relative;

属性:top  、right  、bottom  、left 

1.2 相对定位元素定位的参考点:

① 相对定位元素的定位是相对其正常位置,自己没有定位前的位置;

② 移动相对定位元素,它原本所占的空间不会改变

③ 相对定位元素经常被用来作为绝对定位元素的容器块。

1.3 相对定位的特点:

不会脱离文档流

② 布局中,相邻元素会参照相对定位元素原来的位置进行布局,可能造成位置重叠,定位元素显示在上;

③ 不改变原来的显示模式。

1.4 相对定位的举例:

<!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>
        .content {
            width: 800px;
            height: 550px;
            background: pink;
            border: 5px dotted red;
        }

        .box {
            width: 300px;
            height: 150px;
            border: 5px dashed #bbb;
            margin: 10px;
            text-align: center;
            font-size: 50px;
            font-weight: 700;
            line-height: 150px;
            color: #fff;
        }

        .box1 {
            background: orange;
        }

        .box2 {
            background: yellow;
        }

        .box3 {
            background: green;
        }
    </style>
</head>

<body>
    <div class="content">
        <div class="box box1">box1</div>
        <div class="box box2">box2</div>
        <div class="box box3">box3</div>
    </div>
</body>

</html>

 初始设置好三个盒子,现在对 box2 进行相对定位,改变如下:

.box2 {
    background: yellow;
    /* 相对定位,向上移动150px,向右移动200px */
    position: relative;
    top: -150px;
    left: 200px;
}

结果:

二、绝对定位( absolute )

2.1 设置方式:

position:absolute;

属性:top  、right  、bottom  、left  

2.2 元素定位的参考点:

① 绝对定位元素参照它的包含块进行定位;

② 绝对定位元素的包含块是第一个定位(任何定位都可以)的祖先元素(从下到上),如果没有

定位的祖先元素,包含块就是整个页面。

2.3 绝对定位的特点:

① 绝对定位元素会脱离文档流, 显示在其他元素上面;

② 不论显示模式是行内、行内块、块级或者浮动,设置为绝对定位,就是绝对定位的元素,拥有自己的特点;

③ 绝对定位元素的显示特点:

  Ⅰ. 默认宽高被内容撑开,不存在外边距的合并和塌陷,左右外边距auto不会居中

  Ⅱ. 不会被父元素作为文本,可以设置宽高、内外边距

④ 使用百分比设置位置、大小都参照包含块;

⑤ 在没有设置固定宽高的前提下,同时设置left和right可以影响宽度,同时设置top和bottom可以影响高度。

2.4 绝对定位的举例:

 同1.4初始设置好三个盒子,对 box3 进行绝对定位,改变如下:

.box3 {
    background: green;
    /* 绝对定位 */
    position: absolute;
    top: 100px;
    left: 100px;
}

 或者:

.box3 {
    background: green;
    /* 绝对定位 */
    position: absolute;
    top: 80px;
    right: 300px;
}

2.5 设置绝对定位元素在包含块中居中(水平与垂直)

方案一:

position: absolute;

top: 0;

bottom: 0;

left: 0;

right: 0;

margin: auto;

方案二:

position: absolute;
left: 50%;
top: 50%;
margin-left: -总宽度/2;
margin-top: -总高度/2;

三、固定定位( fixed )

3.1 设置方式:

position:fixed;

属性:top  、right  、bottom  、left  

3.2 元素定位的参考点:

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

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

3.3 固定定位的特点:

同 2.3 绝对定位的特点

① 固定定位元素会脱离文档流, 显示在其他元素上面;

② 不论显示模式是行内、行内块、块级或者浮动,设置为固定定位,就是固定定位的元素,拥有自己的特点;

③ 固定定位元素的显示特点:

  Ⅰ. 默认宽高被内容撑开,不存在外边距的合并和塌陷,左右外边距auto不会居中

  Ⅱ. 不会被父元素作为文本,可以设置宽高、内外边距

④ 使用百分比设置位置、大小都参照包含块;

⑤ 在没有设置固定宽高的前提下,同时设置left和right可以影响宽度,同时设置top和bottom可以影响高度。

3.4 固定定位的举例:

代码:

<!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>
        .content {
            width: 800px;
            height: 900px;
            background: pink;
            border: 5px dotted red;
        }

        .box {
            width: 300px;
            height: 150px;
            border: 5px dashed #bbb;
            margin: 10px;
            text-align: center;
            font-size: 50px;
            font-weight: 700;
            line-height: 150px;
            color: #fff;
        }

        .box1 {
            background: orange;
            /* 固定定位,并设置居中 */
            position: fixed;
            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            margin: auto;
        }

        .box2 {
            background: yellow;
        }

        .box3 {
            background: green;
        }
    </style>
</head>

<body>
    <div class="content">
        <div class="box box1">box1</div>
        <div class="box box2">box2</div>
        <div class="box box3">box3</div>
    </div>
</body>

</html>

结果:

3.5 设置固定定位元素在包含块中居中(水平与垂直)

同 2.5 设置绝对定位元素在包含块中居中(水平与垂直)

方案一:

position: fixed;

top: 0;

bottom: 0;

left: 0;

right: 0;

margin: auto;

方案二:

position: fixed;
left: 50%;
top: 50%;
margin-left: -总宽度/2;
margin-top: -总高度/2;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值