有很多时候我们都会用到负margin,但多数情况下不理解具体行为
负margin具体行为需要根据设置的方向、是否浮动以及元素的定位方式来判断
1.在没有设置浮动和特殊定位position的情况下
margin-top或margin-left为负值:该元素a往该方向(top/left)移动相应距离
margin-bottom或margin-right为负值:该元素a本身不移动,后面的元素b往该元素a方向移动相应距离并覆盖该元素a
2.没有设置浮动但position为relative
margin-top或margin-left为负值:该元素a往该方向(top/left)移动相应距离(跟第一种情况一样)
margin-bottom或margin-right为负值:该元素a本身不移动,后面的元素b移动之后会被该元素a覆盖(与第一种情况覆盖情况相反)
3.没有设置浮动但position为absolute
margin-top或margin-left为负值:该元素a往该方向(top/left)移动相应距离(跟第一种情况一样)
margin-bottom或margin-right为负值:因为已经脱离文档流,不会影响后面的元素
4.设置了浮动
负值 margin 的方向与浮动的方向相同:元素会往对应的方向移动对应的距离
负值 margin 的方向与浮动的方向相反:元素本身不动,元素之前或者之后的元素会向该元素的方向移动相应的距离