面试官很喜欢问的一个问题是:如何使一个盒子水平垂直居中。
.
.
一开始我是想到margin:auto的,可是实际上出来的效果是这样子:
.
只是左右自适应了,上下自适应的效果没有体现出来。
.
.
查了一下,发现规范就是这么设定的:
-W3C Recommendation
.
在可视化布局内,块级非替换元素在普通流内布局有公式为: 左margin+左border+左padding+width+右padding+右border+右margin = 包含块宽度
.
.
auto能实现水平居中是因为水平方向的 auto的计算值取决于可用空间(剩余空间)。
.
.
.
而对于高度是没有公式定义的,直接规定margin-top: auto; 和 margin-bottom: auto;时其计算值为0。
.