layout
盒 子宽度计算
offsetwidth: padding + border + width
margin 纵向重叠问题
同级元素纵向重叠及父子级元素重叠
父子级则最好只在父级设置margin,父子的间距使用padding或者border挤开(不推荐) 使用BFC效果最好
<style>
p{
font-size :16px;
line-height: 1;
margin-top: 10px;
margin-bottom: 15px;
}
</style>
<p>AAA</p>
<p></p>
<p></p>
<p></p>
<p>BBB</p>
对于盒模型,没有加定位时纵向的margin会重叠,只保留最大的margin
A B之间的纵向距离: 15px 一般空标签未指明height时不占用空间
margin 负值问题
-
margin-top、margin-left为负值时本身元素移动(对于其左方、上方元素来说占据空间变小),与margin-right、margin-bottom原理相同 -
margin-right、margin-bottom为负值则右边或者下边的元素移动 相当于是在其他元素(右方、下方的元素)看来此元素减小了,占据的空间变小 如margin-right: -100px相当于元素不占空间
盒子塌陷
当父元素没设置足够大小的时候,而子元素设置了浮动的属性,子元素就会跳出父元素的边界(脱离文档流),尤其是当父元素的高度为auto时,而父元素中又没有其它非浮动的可见元素时,父盒子的高度就会直接塌陷为零
处理方法:
- BFC
- 清除浮动
- 加border
- padding-top