2021/8/5 css定位

定位

绝对定位和浮动都脱离了标准文档流,但是相对定位并没有脱离。 开启了定位才有偏移量,没有开启定位的是没有偏移量的,写了也没有。

在这里插入图片描述

相对定位

相对定位是不脱离文档流的,所以可以看做是魂穿。开启了相对定位之后其实元素的位置并没有改变,只是显示变了。
相对定位的偏移量是新对旧的偏移量,如果要以新的作为视角的话都要反着看。
在这里插入图片描述
但是我在检查的时候div2确实又变了。

<!DOCTYPE html>
<html lang="cn">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <style>
        .out{
            border: 1px red solid;
        }
        .in1,.in2,.in3{
            width: 200px;
            height: 200px;
        }
        .in2{
            background-color:aqua;
            position: relative;
            bottom: 200px;#原来在现在的下面200px
            left: 100px;#原来在现在的左边100px
        }
        .in1{
            background-color: blue;
        }
        .in3{
            background-color: tomato;
        }
    </style>
</head>
<body>
    <div class="out">
        <div class="in1">

        </div>
        <div class="in2">

        </div>
        <div class="in3">
           
        </div>
    </div>
</body>

在这里插入图片描述

绝对定位

绝对定位脱离文档流,定位是根据最近开启了定位的父元素(也叫做包含块元素)的原点定位的。要是一直找没找到的话,就找根元素html。以根元素html标签定位的话是忽略body的,没有空隙。

在这里插入图片描述在这里插入图片描述

<style>
.in1{
            background-color: blue;
            position: absolute;#父元素往上没有其他包含块元素了 父元素的绝对定位是以根标签<html>来定位的 所以跟浏览器的框是百分百贴合
            top:300px;
            left:400px;
            width: 400px;
            height: 400px;
        }
        .in2{
            background-color:aqua;
            position: absolute;
            top:0px;
            left:0px;
        }
</style>
        <div class="in1">
            <div class="in2">
            </div>
        </div>

在这里插入图片描述

绝对定位位置计算

水平布局

水平布局公式:(其实就是原先那个多了left,right两个偏移量)
在这里插入图片描述
有auto调auto(left,right默认auto),没auto调right(发生过渡约束了)
在这里插入图片描述调了一下padding,撑开了里面的盒子而已。。没有调元素的位置。。。

在这里插入图片描述
left,right都是auto,然后优先调right(。

水平居中
其实left right写啥都行 只要让他们不为自动就ok,写的比父元素的还大都行,margin:auto,浏览器自动调成负值掰回来haha

<sytle>
 .in2{
            background-color:aqua;
            position: absolute;
            left: 0px;
            right: 0px;
            margin: auto;
            width: 100px;
            height: 100px;
        }
</sytle>

在这里插入图片描述

垂直布局

垂直布局公式(绝对定位强制要求满足这个公式):
top+border-top+margin-top+padding-top+content+padding-bottom+margin-bottom+border-bottom+bottom=包含块高度

垂直居中:

<sytle>
 .in2{
            background-color:aqua;
            position: absolute;
            top: 0px;
            bottom: 0px;
            margin: auto;
            width: 100px;
            height: 100px;
        }
</sytle>

在这里插入图片描述

中心居中:

<sytle>
 .in2{
            background-color:aqua;
            position: absolute;
            top: 0px;
            bottom: 0px;
            left: 0px;
            right: 0px;
            margin: auto;
            width: 100px;
            height: 100px;
        }
</sytle>

在这里插入图片描述

固定定位

在这里插入图片描述

视口就是当前浏览器窗口大小,其实也不准确,应该说当前浏览器可以展现的内容多少,阴影部分就是视口。类似于固定导航条,回到顶部,小广告之类的。

在这里插入图片描述

粘滞定位

兼容性太差了,好可惜,定位是相对视口。

在这里插入图片描述

元素的层级

在这里插入图片描述

使用了定位之后,如果不指定z-index的话都是一样的。此时后面的会盖住前面的,这波叫钱江后浪推前浪。be like
在这里插入图片描述祖先元素层级再高也不会盖住后代元素,这波叫水涨船高:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值