如果要使 一个 div在屏幕上水平居中 ,标准的做法是 margin -left: auto; margin -right: auto;
根据css 标准 关于水平格式的属性 : margin-left ,border-left,padding-left,width,padding-right,border-right,margin-right , 这七个属性的值加在一起必须是元素包含块的宽度,(块元素的父元素的width值)
这七个属性中,只有三个值可以设置为 auto :元素内容 width ,左右外边距 margin.
其余属性必须设为特定的值,或默认宽度为0.width 必须设为auto 或 非负值。而 margin 初始值 0
firefox 下所有标签 css 属性定义在 :resource://gre/res/html.css
如果 width ,margin-left ,margin-right 其中某个值为 auto ,则 该值依据 父元素的 width 和其他两个值 自动调节。
x = width(parent) -fix1 -fix2
若 width 固定 ,margin auto ,则 margin-left=margin-right = (width(parent) - width(children))/2,因此 子元素就会在父元素居中了。
若 3个属性均为 auto ,则 相当于 没有对 三个属性 申明任何css规则 ,width 尽可能宽,margin 为 默认值 0