如果我设置一个div的CSS边距属性,就像这样:
div { margin-left: auto; margin-right: auto; }
但是,如果我将CSS更改为:
div { margin-top: auto; margin-bottom: auto; }
我的div不是垂直居中的。我不需要知道解决方法(plenty of solutions are available),但我想知道这个行为的原因。为什么边际上线和边缘底线的工作方式不一样?我失踪了什么
解决方法
简单的答案是规范说的。
10.6.2 Inline replaced elements,block-level replaced elements in normal flow,‘inline-block’ replaced elements in normal flow and floating replaced elements
If ‘margin-top’,or ‘margin-bottom’ are ‘auto’,their used value is 0.
http://www.w3.org/TR/CSS2/visudet.html#Computing_heights_and_margins