0. 写在前面
过年也不能停止学习,一停下就难以为继,实属不应
1. 盒子的水平宽度
当一个盒子出现在另一个盒子的内容区时,该盒子的水平宽度“必须”等于父元素内容区的宽度
盒子水平宽度:
margin-left + border-left + padding-left + width + padding-right + border-right + margin-right
若强行设置盒子的水平宽度不等于父元素内容区的宽度时,这种情况称为“过度约束”
若发生过度约束时,浏览器会按照从左到右的顺序尽可能的满足条件,若不满足则自动调整margin-right
使等式成立
(注:现在好像不能在浏览器中通过F12
选元素查看到浏览器的自动调整,不知道是为啥)
margin-left
和margin-right
的auto
属性:让浏览器自动设置左右外边距
margin-left
和margin-right
的值设置为auto
后,浏览器会根据上述公式平均分配左右外边距
盒子的水平居中
width: 100px;
margin: 0 auto;
注意:必须指明宽度width,否则默认值为auto
,浏览器会默认使用width
进行内容区的填充
示例如下:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> --><title>Box horizontal layout</title>.father {width: 1200px;height: 200px;border: 5px solid red;}.son {width: 200px;height: 200px;background-color: #c7decc;margin: 0 auto;}
</head><body><div class="father"><div class="son"></div></div>
</body></html>