CSS中position定位

       在我们布局的时候,我们会经常使用到position属性,它规定了元素定位的类型,元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行确定。下面说一下它常用的三种定位机制

 

1、 absolute 绝对定位

下面代码有三个盒子,每个盒子的宽高都是100px,给第三个盒子设置绝对定位,并距离body左边框20pxbody顶部边框20px,看一下效果会是什么样子。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        div {
            width: 100px;
            height: 100px;
        }
        .one {
            background: red;
        }
        .two {
            background: green;
        }
        .three {
            background: blue;
            position: absolute; /*绝对定位*/
            left: 20px;
            top: 20px;
        }
    </style>
</head>
<body>
<div class="one">1</div>
<div class="two">2</div>
<div class="three">3</div>
</body>
</html>

        在浏览器上运行后,我们可以发现第三个盒子在第一、二个盒子上面,距离body的左边框以及顶部边框的距离都是20px,由此我们可以发现设置绝对定位后的元素脱离标准流,在页面中不占位置。

2、 relative 相对定位

同样是上面的三个盒子,给第二个盒子设置相对定位,lefttop都设置20px

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        div {
            width: 100px;
            height: 100px;
        }
        .one {
            background: red;
        }
        .two {
            position: relative;/*相对定位*/
            left: 20px;
            top: 20px;
            background: green;
        }
        .three {
            background: blue;
        }
    </style>
</head>
<body>
<div class="one">1</div>
<div class="two">2</div>
<div class="three">3</div>
</body>
</html>


        运行后,发现第二个盒子偏移的距离是相对自己原来的位置进行的偏移,且第三个盒子并没有移动上去,所以,设置相对定位后的元素是不脱离标准流,并且在页面中占据位置


3、 fixed 固定定位

        固定定位这个属性,相信大家在网页上看小说的时候,会经常遇到,当我们滚动页面滚动条的时候,不论我们是向下还是向上滚动,页面的左右两边总是在固定的位置有广告栏,这里就运用了固定定位。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .one {
            width: 50px;
            height: 50px;
            background: red;
            position: fixed;/*相对定位*/
            left: 50px;
            top: 50px;
        }
        .two {
            height: 3000px;
            width: 100%;
            background: pink;
        }
    </style>
</head>
<body>
<div class="one">1</div>
<div class="two">2</div>
</body>


        不论我们怎么滚动滚动条,第一个盒子总是在相对于浏览器的边框的左50px,上50px的位置,并且第一个盒子在第二个盒子的上面,因此设置固定定位后的元素脱离了标准流,且不占据位置。


总结一下这三个元素的区别

absolute 绝对定位

1、脱离标准流,在页面中不占位置

2、如果没有父元素,则相对于body定位;如果有父元素,但是父元素没有定位,那么还是相对于body定位;如果父元素有定位,那么相对于父元素来定位

relative 相对定位

1、不脱离标准流,在页面中占位置

2、相对于自己原来的位置来进行定位

fixed 固定定位    

1、脱离标准流,在页面中不占位置

2、不管页面有多大,永远是相对于浏览器的边框来定位



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值