关于css定位布局问题(固定,相对,绝对)

定位布局是我们平时开发中经常使用到的,关于他的原理和用法,做了下面一些总结。

定位布局以下几种比较常用

  • 固定定位:fixed
  • 相对定位:relative
  • 绝对定位:absolute

1.fixed 固定定位

        固定定位的作用就是该元素不会随着浏览器右侧的滚动条而滚动,他是相对于整个浏览器而言的.

        对于每个使用fixed定位的元素 top,bottom,left,right四个参数里只需要两个参数就可以确定他的位置

接下来我们来看一个简单的案例:

<!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>
</head>
<style type="text/css">
    #divd{
        width: 200px;
        height: 1800px;
        border: 1px solid;
        line-height: 600px;
        text-align: center;
        background-color: antiquewhite;
    }
    #fixed{
        position: fixed;
        width: 160px;
        left: 250px;
        top: 200px;
        height: 30px;
        text-align: center;
        background-color: aqua;
    }

</style>
<body>
    <div id="divd">没有固定的div</div>
    <div id="fixed">固定的div</div>
    
</body>
</html>

页面效果:

 当我们滚动右侧滚轮时

 会发现经过固定后的元素位置没有发生改变

2.relative相对定位

        相对定位顾名思义。第一个谈到的固定布局是相对于浏览器而言的,而相对定位是元素相对于原来位置而偏移的。

举个李子:

<!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>
</head>
<style type="text/css">
    #div1{
        width: 100px;
        height: 100px;
        border: 1px solid;
        line-height: 50px;
        text-align: center;
        background-color: antiquewhite;
    }
    #relative{
        width: 100px;
        height: 100px;
        border: 1px solid;
        line-height: 50px;
        text-align: center;
        background-color: aqua;
    }
    #div3{
        width: 100px;
        height: 100px;
        border: 1px solid;
        line-height: 50px;
        text-align: center;
        background-color: antiquewhite;
    }

</style>
<body>
    <div id="div1">div1</div>
    <div id="relative">div2</div>
    <div id="div3">div3</div>
    
</body>
</html>

此时的布局:

当俺们以绝对布局实现时

 此时布局为

 

相对于原来的位置向左偏移了30px

3.absolute绝对定位

        绝对定位和固定定位一样是相对于浏览器而言的,不一样的地方在于它浮于其他元素的上方了,它前后左右的元素会认为它不存在.

举个例子:

<!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>
</head>
<style type="text/css">
    #div1{
        width: 100px;
        height: 100px;
        border: 1px solid;
        line-height: 50px;
        text-align: center;
        background-color: antiquewhite;
    }
    #absolute{
        /* position: relative; */
        top: 60px;
        width: 100px;
        height: 100px;
        border: 1px solid;
        line-height: 50px;
        text-align: center;
        background-color: aqua;
    }
    

</style>
<body>
    <div id="div1">div1</div>
    <div id="absolute">div2</div>
    
</body>
</html>

此时他是这样滴:

 封印解除:

这个元素就独立出来了,且位置是对于浏览器而言的.

 

总结:

        固定定位(fixed)和绝对定位(absolute)是相对于浏览器而言的,但是绝对定位的元素会独立出来,而相对定位是相对于该元素原来位置的.that's all !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值