定位
相对定位
相对定位:盒子可以相对自己原来的位置进行位置调整,称为相对定位。
left 向右移动;right向左移动;top 向下移动;bottom 向上移动,值可以为负数,即往规定方向相反移动。
相对定位的性质
相对定位的元素,会在“老家留坑”,本质上仍然是在原来的位置,只不过渲染在新的地方而已,渲染的图形可以比喻成“影子”,不会对页面其他元素产生任何影响。示例代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
div{
width: 400px;
height: 400px;
border: 1px solid #000;
margin: 40px auto;
}
p {
width: 100px;
height: 100px;
background-color: orange;
position: relative;
top: 100px;
left: 100px;
}
</style>
</head>
<body>
<div>
<p></p>
<h3>我是三级标题</h3>
<ul>
<li>列表</li>
<li>列表</li>
<li>列表</li>
</ul>
</div>
</body>
</html>
网页效果如下:
可以看到相对原来的位置向下向右移动了100px。
相对定位的用途
相对定位用来微调元素位置
相对定位的元素,可以当做绝对定位的参考盒子 。
绝对定位
绝对定位:盒子可以在浏览器中以坐标进行位置精准描述,拥有自己的绝对位置。left 到左边的距离;right到右边的距离;top到上边的距离; bottom到下边的距离,示例如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box {
position: absolute;
bottom: 300px;
right: 200px;
width: 200px;
height: 200px;
background-color: orange;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
网页效果如下:
绝对定位的元素脱离标准文档流,将释放自己的位置,对其他元素不会产生任何干扰,而是对它们进行压盖。
脱离标准文档流的方法:浮动、绝对定位、固定定位
绝对定位的参考盒子
绝对定位的盒子并不是永远以浏览器作为基准点,绝对定位的盒子会以自己祖先元素中,离自己最近的拥有定位属性的盒子,当做基准点。这个盒子通常是相对定位的,所以这个性质也叫作“子绝父相。
绝对定位的盒子垂直居中是一个非常实用的技术,想要设置成垂直居中,需要将top值设置为50%; margin-top值设置为自己高度一半。
绝对定位的用途
绝对定位用来制作“压盖”、“遮罩”效果;绝对定位用来结合CSS精灵使用;绝对定位可以结合JS实现动画。
固定定位
固定定位:不管页面如何卷动,它永远固定在那里position: fixed;
固定定位注意事项
固定定位只能以页面为参考点,没有子固父相这个性质;固定定位脱离标准文档流。
固定定位的用途:“返回顶部”、“楼层导航”。