CSS之position

一、概述

 

我们今天来学习css里面比较重要的一个知识点,position,这个是干嘛的呐,是将页面分层的,就是说,我们所有的标签默认都是在一层,但是使用了position之后,就可以把页面分层了,废话不多说了,下面我们就来看看。

二、固定在页面某个位置

 

说明:position:fixed 表示固定在页面某个位置,但是这个要结合上(top)、下(bottom)、左(left)、右(right)  样式使用

2.1、固定在右上角

<body>
    <div style="width: 50px;height: 50px;background-color: red;
    position: fixed;   #position把跟底部页面分开,然后固定在某个位置
    top: 0;   #position结合top和right使用
    right: 0;"
    >顶部</div>
    <div style="height: 5000px;background-color: skyblue;"></div>
</body>

 效果图:

2.2、固定在右下角

<body>
    <div onclick="gotop()" style="width: 50px;height: 50px;background-color: red;
    position: fixed;
    bottom: 20px;  #固定在右下角
    right: 20px;"
    >顶部</div>
    <div style="height: 5000px;background-color: skyblue;"></div>
 
    <script>
        function gotop(){   //返回顶部的js
            document.body.scrollTop = 0;
        }
    </script>
</body>

效果图:

2.3、菜单栏固定在顶部

 

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .pg-header{
            height: 48px;
            background-color: black;
            color: #dddddd;
            position: fixed; #fixed
            top:0;  #固定在顶部,表示上边和左边右边的间距为0
            right:0;
            left: 0;
 
        }
        .pg-body{
            background-color: #dddddd;
            height: 5000px;
            margin-top: 50px;
        }
    </style>
</head>
<body>
    <div class="pg-header"></div>
    <div class="pg-body"></div>
</body>

效果图

 

小结:position:fixed 表示固定在页面某个位置

三、固定在相对位置

 

我们不能把所有标签固定在一个页面上的某个位置,我们还想把标签固定在某个div的某个位置,那么这个位置就是相对位置,相对个父标签div而固定的位置,那这个怎么弄呢?下面我们就来一起研究一下

2.1、absolute单独使用

说明:之前我们用的是fixed的,现在用absolute使用看看,跟fixed的有什么区别

<body>
    <div style="height: 50px;width: 50px;background-color: black;
    position: absolute;  #使用absolute固定
    right: 0;    #固定在右下角
    bottom: 0;
    "></div>
    <div style="height: 5000px;background-color: skyblue;"></div>
</body>

 效果图:

①滚轮没有滑动的效果:

②我滑动滚轮的效果:

所以说position:abosolute是一锤子买卖,最开始固定在哪里,我以后跟着滚动条的时候,也跟着滑轮动起来。

2.2、relative+absolute结合起来使用

说明:absolute一般情况下没啥软用,但是跟relative结合起来用就牛逼了,它的意思就是,absolute所在子标签,相对relative的父标签位置去定位的。

<body>
    <div style="position: relative;width: 500px;height: 200px;border: 1px solid red;margin: 0 auto">  #父标签用position: relative
        <div style="position: absolute;  #字标签用:position: absolute,意思:根据父标签去固定位置
        top: 0;
        right: 0;
        width: 50px;height: 50px;background-color: skyblue"></div>
    </div>
</body>

效果图:

注意了:如果想让div居中的话,则使用 margin: 0 auto;

问:如果把上面的absolute改成fixed的话,会出现什么效果呢?

效果图:

所以说fixed是固定在页面的某个位置,不会随着滚轮的滑动而改变,absolute是相对于父标签的所在位置去固定位置,是相对的。

问:如果right或者top为负像素的话,会出现什么现象?

 

效果图:

就会跑到外面去了,这个没有关系的,它还是依据它的父标签去固定的,只是right的值不一样而已。

 

posted @ 2018-01-22 15:25  人生是一场修行  阅读(139)  评论(0编辑  收藏  举报