定位在网页中的应用
- 下拉菜单
- 不随滚动条移动的固定导航
- 鼠标移入弹出的消息框
- …
定位只适用于特定场景,一定不能用于布局
布局时先搭div 设置宽高bgc
position
默认定位
static
没有定位,以标准流方式显示
相对定位
relative
偏移设置:top、left、right、bottom
相对定位元素的规律
-
相对于自己的初始位置来定位
-
不脱离标准文档流中
-
元素位置发生偏移后,原来的位置会被保留下来
-
层级提高,可以把标准文档流中的元素及浮动元素盖在下边
相对定位的使用场景:相对定位relative 一般情况下很少自己单独使用,都是配合绝对定位absolute 使用,为绝对定位创造定位父级而又不设置偏移量
#third {
background-color:#C5DECC;
border:1px #395E4F dashed;
position:relative;
right:20px;
bottom:30px;
}
偏移量方向(left和top正、负取值的方向)
绝对定位
absolute
偏移设置:top、left、right、bottom
绝对定位元素的规律
- 使用了绝对定位的元素以它最近的一个“已经定位”的“祖先元素” 为基准进行偏移
- 如果没有已经定位的祖先元素,会以浏览器窗口为基准进行定位
- 脱离标准文档流
- 元素位置发生偏移后,原位置不保留
- 层级提高,把标准文档流中的元素及浮动元素盖在下边
绝对定位不设置偏移量:设置了绝对定位但没有设置偏移量的元素将保持在原来的位置。
在网页制作中可以用于需要使某个元素脱离标准流,而仍然希望它保持在原来的位置的情况
绝对定位的使用场景:一般情况下,绝对定位用在:下拉菜单
、焦点图轮播
、弹出数字气泡
、特别花边
等场景
固定定位
fixed
偏移设置: left、right、top、bottom
固定定位元素的规律
-
脱离标准文档流
-
固定到浏览器窗口,相对浏览器窗口来定位
-
偏移量不会随滚动条的移动而移动
固定定位的使用场景:左右两边的固定广告、返回顶部图标、导航栏等
吸顶定位
stiky,滚动条到顶定位
案例:导航条吸顶变色
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body style="height: 2000px;">
<div class="header"></div>
</body>
<style type="text/css">
.header{
position: sticky;
top: 0;
width: 100%;
height: 100px;
background-color: red;
}
.sticky {
background-color: #333; /* 吸顶后的头部颜色 */
}
</style>
<script type="text/javascript">
window.addEventListener('scroll', function() {
var header = document.querySelector('.header');
var sticky = header.offsetTop;
console.log(sticky)
if (sticky> 500) {
header.classList.add('sticky');
} else {
header.classList.remove('sticky');
}
});
</script>
</html>
z-index
调整元素定位时重叠层的上下位置
- z-index属性值:整数,默认值为0
- 设置了positon属性时,z-index属性可以设置各元素之间的重叠高低关系
- z-index值大的层位于其值小的层上方
网页元素透明度
属性 | 说明 | 举例 |
---|---|---|
opacity:x | x值为0~1,值越小越透明 | opacity:0.4; |
filter:alpha(opacity=x) | x值为0~100,值越小越透明 | filter:alpha(opacity=40); |
网页中的元素都含有两个堆叠层级
- 未设置绝对定位时所处的环境,z-index是0
- 设置绝对定位时所处的堆叠环境,此时层的位置由z-index的值确定
改变设置绝对定位和没有设置绝对定位的层的上下堆叠顺序,只需调整绝对定位层的z-index值即可