水平方向
可以设置为auto的属性:width margin-left margin-right,也就是说,padding都不可以设置为auto
假设padding为0的情况下:
- 三个确定值 + 零个auto,实际上margin-right是按照auto的规则来计算
- 两个确定值 + 一个auto,则三者的值宽度相加要等于父元素的width
- 一个确定值 + 两个auto 的情况要讨论:
- width确定,margin-left\right为auto,则元素居中
- 某一边距确定,width和另一边距为auto,则另一边距为0,width为最大使充满父元素
- 三个都为auto,则两个外边距都为0,width为最大使充满父元素【没有margin和width的显示声明时,就是这种情况】
注:只有margin可以为负,因此计算时可能为负值,是符合规范的行为,但其余padding border width不能为负
垂直方向
- 可以设置为auto的属性:height margin-top margin-bottom
- height默认为auto
- margin-top\bottom设置为auto时,表示为0