定位position

定位最常运用的场景 :

  1. 左右箭头压住图片
  2. 固定在窗口的广告

元素的定位属性

1.定位模式(定位的分类)

选择器{
    position:属性值;
}

position属性的常用值:

static                自动定位(默认定位方式)

relative             相对定位,相对于原文档流的位置进行定位

absolute           绝对定位,相对于上一个已经定位的父元素进行定位

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

sticky                粘性定位,基于用户的滚动位置来定位

2.边偏移

边偏移属性                描述

top                        顶端偏移量,定义元素相对于其父元素上边线的距离

bottom                  底部偏移量,定义元素相对于其父元素下边线的距离

left                        左侧偏移量,定义元素相对于其父元素左边线的距离

right··                   右侧偏移量,定义元素相对于其父元素右边线的距离

相对定位(自恋型)

相对于自己原来的位置进行定位,没有脱离标准流

相对定位是将元素相对于它在标准流中的位置进行定位,当position属性的取值为relative时,可以将元素定位于相对位置。

对元素设置相对定位后,可以通过边偏移属性改变元素的位置,但是它在文档流中的位置仍然保留。

position: relative;

注意:

  1. 相对定位最重要的一点是,它可以通过边偏移移动位置,但是原来的所占的位置,继续占有。

  2. 其次,每次移动的位置,是以自己的左上角为基点移动(相对于自己来移动位置)

就是说,相对定位的盒子仍在标准流中,它后面的盒子仍以标准流方式对待它。(相对定位不脱标)

绝对定位(拼爹型)

  1. 父元素如果没有设置定位,那么相对于body(文档)进行定位
  2. 脱离标准流

当position属性的取值为absolute时,可以将元素的定位模式设置为绝对定位。

绝对定位最重要的一点是,它可以通过边偏移移动位置,但是它完全脱标,不占位置。

position:absolute;

父级没有定位

若所有父元素都没有定位,以浏览器为准对齐(document文档)。

父级有定位

绝对定位是将元素依据最近的已经定位(绝对、固定或相对定位)的父元素(祖先)进行定位。

子绝父相

父元素设置相对定位,子元素设置绝对定位

.father{
    width:200px;
    height:100px;
    border:1px solder red;
    margin:50px auto;
    position:relative;
}
.son{
    width:10px;
    height:10px;
    background-color:blue;
    position:absolute;
    right:20px;
    bottom:20px;
}

如果要对一个子元素使用定位的话,让子元素(绝对定位)以其父元素(相对定位)为标准来定位。

因为子级是绝对定位,不会占有位置, 可以放到父盒子里面的任何一个地方。

父盒子布局时,需要占有位置,因此父亲只能是 相对定位。

固定定位fixed(认死理型)

相对于浏览器进行定位

position: fixed;
right: 50px;
bottom: 100px;

定位的盒子居中

首先left 50% ,top 50% 父盒子的一半大小

然后外边距退回自己宽度及高度的一半值

.father{
    width:300;
    height:300px;
    border:1px solid green;
    position:relative;
}

.son{
    width:100px;
    height:100px;
    background-color:red;
    position:absolute;
    left:50%;
    top:50%;
    /*倒回去自身的一半*/
    margin-left:-50px;
    margin-top:-50px;
}

    

静态定位 static

静态定位是所有元素的默认定位方式,当position属性的取值为static时,可以将元素定位于静态位置。 所谓静态位置就是各个元素在HTML文档流中默认的位置。

该定位状态下,无法通过边偏移属性来改变元素的位置。


叠放次序

z-index的默认属性值是0,取值越大,定位元素在层叠元素中越居上。


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .father {
            width: 400px;
            height: 500px;
            border: 1px solid red;
            margin: 100px auto;
            /* 子绝父相 */
            position: relative;
        }

        .father div {
            width: 200px;
            height: 200px;
            position: absolute;
        }

        /* z-index的默认属性值是0,取值越大,定位元素在层叠元素中越居上。
        注意点:z-index在position定位设置时才可以使用,不然无效
         position: absolute relative fiexed;
        */
        .son1 {
            background-color: blue;
            left: 0;
            top: 0;
            z-index: 3;
            /* 设置在最上层 */
            z-index: 9999;
        }

        .son2 {
            background-color: green;
            left: 30px;
            top: 30px;
            z-index: 2;
        }

        .son3 {
            background-color: pink;
            left: 60px;
            top: 60px;
        }
    </style>
</head>

<body>
    <div class="father">
        <div class="son1">son1</div>
        <div class="son2">son2</div>
        <div class="son3">son3</div>
    </div>
</body>

</html>

注意点:z-index在position定位设置时才可以使用,不然无效。

  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS中的position属性用于控制元素的定位方式。根据引用\[1\]和引用\[2\],position属性有五个值:static、relative、absolute、fixed和sticky。 - static:元素按照正常的文档流进行布局,不会受到position属性的影响。 - relative:元素相对于其在正常文档流中的位置进行定位。引用\[3\]中的示例展示了相对定位的效果,其中.content_1元素相对于其在正常文档流中的位置进行定位。 - absolute:元素相对于其最近的非static定位的父元素进行定位。如果没有非static定位的父元素,则相对于文档的根元素进行定位。引用\[2\]中的示例展示了绝对定位的效果,其中.content元素相对于.container元素进行定位。 - fixed:元素相对于浏览器窗口进行定位,即使页面滚动,元素的位置也不会改变。 - sticky:元素在滚动到特定位置时变为固定定位,直到滚动回到指定位置之前保持固定定位。 总结来说,position属性用于控制元素的定位方式,可以通过设置不同的值来实现不同的效果。 #### 引用[.reference_title] - *1* *2* *3* [CSS Position 定位](https://blog.csdn.net/Coxhuang/article/details/103319551)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值