margin取负值之后,例如margin-top:-1px元素会从父框架的顶部突出一个像素,如果父框架设置了overflow:visibled的话,这个元素就会看起来显示在父框架外面了,如果取了正值,例如margin-top:1px元素就是距离父框架的顶部一个像素,会在父框架内显示。
padding取了负值之后是没有任何效果的,浏览器会认为padding:0。如果padding取正值,就是在元素内部填充,这个很好理解。position取了负值之后的效果和margin差不多,只是position通常是应用绝对定位场景的,而margin通常是应用在相对定位场景的,而且position可以定义z轴上的位置关系,但是margin一般是不可以的,两个的区别主要是在这个方面,至于取负值,在视觉上其实没有什么太大的区别。
用一个 div 试一下就知道了。比如:<div class="f_margin">
这个是测试 DIV 盒子。
</div>
.f_margin {
margin: 100% -150px
...
...
}
实践是检验真理的唯一标准。
margin的负值,叫负外补丁,4个方向都可以有负值,就是缩小容器的外围。一般配合position使用。比如一个水平绝对居中的用法。
#box { width:960pxheight:50pxmargin-left:-480pxpadding:0position:absoluteleft:50%top:0z-index:16}
这里就用到了 margin-left:-480px是该容器一半的宽度,从而绝对居中。
当然负外补丁用法还不少,自己可以google下。
跟兼容性没有关系,是靠你调整自己的css代码达到兼容的。