块级元素
水平格式化
1.水平格式化的7大属性:margin-left,border-left,padding-left,width,margin-right,border-right,padding-right.这些属性与块级框的水平布局有关.这7个属性的值加在一起必须是元素包含块的宽度.这往往是块元素的父元素的width值.
2.这7个属性中,只有3个属性可以设置为auto:width,以及左右外边距.其余属性必须设置为特定的值,或者默认宽度为0.
3.如果设置width,margin-left,margin-right中的某个值为auto,而余下的两个属性指定为特定的值,那么设置为auto的属性会确定所需的长度,从而使元素框的宽度等于父元素的width.
4.如果所有这3个属性都设置为非auto的某个值,此时会把margin-right强制为auto
p{
margin-left:100px;
margin-right:100px;
width:200px;
/*right margin force to be auto*/
}
5.如果两个外边距都设置为auto,他们会设置为相等的长度,因此将元素在父元素中居中.
6.如果3个属性都设置为auto,则两个外边距都会设置为0,而width尽可能宽,这种结果与默认情况是相同的
替换元素
1.非替换元素的所有规则同样适用于替换元素.
2.如果width为auto,元素的宽度则是内容的固有宽度.
3.如果一个替换元素的width不同与其固有宽度,那么height的值也会成比例变化,除非height自己也显示设置为一个特定值
垂直格式化
1.与水平格式化情况一样,垂直格式化也有7个相关属性:margin-top,border-top,padding-top,height,margin-bottom,border-bottom,padding-bottom.
2.这7个属性的适用规则与垂直格式化的规则一样.
3.垂直格式化的另一个重要方面是垂直相邻外边距的合并.这种合并行为只适用于外边距,如果元素有内边距和边框,它们绝不会合并.
4.相邻外边距合并时,较小的外边距会被较大的外边距合并.如果有多个外边距,也会被合并.
5.如果垂直外边距都设置为负值,浏览器会取两个外边距 绝对值的最大值.如果一个正外边距与一个负外边距合并,会从正外边距减去这个负外边距的绝对值