元素水平方向的布局:
元素在其父元素中,水平方向的位置由以下几个属性共同决定
margin-left
border-left
padding-left
width
padding-right
border-right
margin-right
上述几个属性对应值的和=其父元素内容区的宽度(必须满足)
如果相加结果使等式不成立,则称为过渡约束,则等式会自动调整
调整情况:
这七个值中有三个值可设置为auto
width 默认值为 auto
margin-left 默认值 0
margin-right 默认值 0
如果七个值中没有auto的情况,则浏览器会自动调整margin-right的值使等式满足
如果某个值为auto,则会自动调整为auto的那个值以使等式成立
如果将一个宽度和一个外边距设置为auto,则宽度会调到最大,设置为auto的外边距自动为0
如果将三个值都设置为 auto ,则外边距都是0,宽度最大
如果将外边距都设置为auto ,宽度为固定值,则外边距设置为相同的值
利用这一特点来使一个元素在其父元素中水平居中
width:100px;
margin:0 auto; /*水平居中*/
相邻的垂直方向外边距会发生重叠现象
兄弟元素:
特殊情况:如果相邻的外边距一正一负,则取两者之和
? 都是负值,则取两者中绝对值较大的
父子元素:
行内元素不支持设置宽度和高度
行内元素可以设置 padding ,但是垂直方向 padding 不影响页面的布局
行内元素可以设置 margin ,但是垂直方向 margin 不影响页面的布局
行内元素可以设置 border ,但是垂直方向 border 不影响页面的布局
原文:https://www.cnblogs.com/codehan/p/14699850.html