<!DOCTYPE html>
<html lang="ch">
<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>绝对定位元素的位置</title>
<style>
/*
水平布局
left + mangin-left + border-left + padding-left + width + padding-right + border-right + margin-right + right = 包含块的内容区的宽度
- 当我们开启了绝对定位后:
(利用这点可以使元素水平居中!!!!!!!!)
水平方向布局等式就需要添加left和right两个值
此时规则和之前一样只是多添加了两个值:
当发生过度约束(等式不成立):
如果9个值中没有auto则自动调整right值以使等式满足
如果有auto,则自动调整auto的值以使等式满足
可设置auto的值
margin width left right
- left和right的值默认是auto,所以如果不知道left和right
则等式不满足时,会自动调整这两个值。优先调整right
(利用这点可以使元素垂直居中!!!!!!!!)
垂直方向布局的等式的也必须要满足
top + margin-top/bottom + padding-top/bottom + border-top/bottom + height = 包含块的高度
- top和bottom的值默认是auto,所以如果不知道top和bottom
则等式不满足时,会自动调整这两个值。优先调整bottom
*/
.box1 {
width: 800px;
height: 500px;
background-color: #bfa;
margin-top: 200px;
position: relative;
}
.box2 {
width: 200px;
height: 200px;
background-color: tomato;
position: absolute;
left: 0;/* 关掉默认值auto */
right: 0;/* 关掉默认值auto */
right: 0;
margin-left: auto;/* 水平居中 */
margin-right: auto;/* 水平居中 */
top: 0;/* 关掉默认值auto */
bottom: 0;/* 关掉默认值auto */
margin-top: auto;/* 垂直居中 */
margin-bottom: auto;/* 垂直居中 */
}
</style>
</head>
<body>
<div class="box1">
<div class="box2"></div>
</div>
</body>
</html>