day15-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的值不一样而已。

浙公网安备 33010602011771号