要点:
- 如果想要利用margin实现水平居中,在css样式表中相应元素的width、left、right都必须有设定值,不得为auto,此时使用margin:auto可以实现水平居中
- 同理,如果想要利用margin实现垂直居中,在css样式表中相应元素的height、top、bottom都必须有设定值,不得为auto,此时使用margin:auto可以实现垂直居中
auto是做什么的?
-
定义auto元素,因元素类型和上下文而异。在边距中,auto可以表示两种情况:占用可用空间或0 px。这两个将为元素定义不同的布局。
“自动”占用可用空间
这是我们利用auto最常见的用法。通过分配auto元素的左右边距,它们可以平等地占据元素容器中的可用水平空间 - 因此元素将居中。
但是,这只适用于水平边距,它不适用于浮动和内联元素,并且它本身也不能用于绝对和固定定位元素。 -
将元素转换为绝对定位只是为了使它可以垂直居中可能不是一个好主意。还有其他选项,如flexbox和CSS变换,也许更加适合。