CSS基础之定位

CSS基础之定位

定位就是告诉某个标签去哪个地方。

一、静态定位:

静态定位其实就是浏览器默认的布局方式,也就是标准流,网页默认情况下就是静态定位的

代码:position:static

二、相对定位:

相对定位是相对于自己原来的位置,其实有点像margin。

代码:positon:relative

注意:需要配合方位实现移动,也就是top、bottom、left、right方位。在页面中没有脱离标准流,他原来所占的位置还在。

举个栗子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="GB 2312">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .position{
            position: relative;
            top: 100px;
            left: 50px;
            width: 200px;
            height: 200px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div class="position"> </div>
    <p>测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位</p>
</body>
</html>

效果:
在这里插入图片描述

三、绝对定位

绝对定位会从内往外找有定位的父级,然后相对于有定位的父级进行定位,
如果没有默认根据浏览器可视区域进行移动。

注意:绝对定位已经脱标,如果把标准流当作第一平行宇宙,那么使用了绝对定位的标签就已经飞出三界了。而上面所说的相对定位可以想象成灵魂出窍但是身体本身还在地面打坐。而且使用绝对定位后,标签会成为行内块模式。

举个栗子:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="GB 2312">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .position{
            position: absolute;
            top: 100px;
            left: 50px;
            /* width: 200px; */
            height: 200px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div class="position">adsfasdfasdfasdfsd </div>
    <p>测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位测试定位</p>
</body>
</html>
效果如下:这里div根据内容展开的,不给内容就没有宽度了,已经成为了行内块标签。

在这里插入图片描述

四、一般搭配方式:子绝父相(子元素使用绝对定位,父元素使用相对定位)

但是如果父元素已经有了定位的话,就不要去修改父元素的定位方式,不要脱裤子放屁。

子绝父相也可以实现居中效果:

让标签来到父标签的中心线,然后再水平向左垂直向上移动自身半个身位就行了。
话不多说直接上代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="GB 2312">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
   
        .father{
            position: relative;
            width: 600px;
            height: 600px;
            background-color: green;
        }
        .son{
            position: absolute;
            left: 50%;
            top: 50%;
            //水平缩回50%,垂直缩回50%身位
            transform: translate(-50% ,-50%);
            width: 200px;
            height: 200px;
            background-color: skyblue;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>
</html>

在这里插入图片描述

五、固定定位

固定定位只相对于浏览器进行移动,很多网页边上都有个固定的滚动的广告,就是那样实现的。

代码:position:fixed

六、总结:

在网页布局层级中:标准流<浮动<定位,如果都是定位需要有层级关系,加上z-index加数字可以设置层级,数字越大层级越高。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值