margin的默认值是多少?什么时候需要加上margin:0px;

来源:百度知道 编辑:UC知道 时间:2024/06/01 14:30:32
实在不知道什么时候要加margin:0px;什么时候不需要...真头疼!
经过试验,margin的默认值不是0,在设置margin:0px;和不添加margin:0px;页面结构会发生变化

margin只是一个CSS的属性,可以说本身不存在默认值的!但你可以认为默认值是0,这种说法不受官方支持的!说一个不恰当的例子吧,你能说体重的默认值是60吗?只能说一个成年男子的默认体重是60,而不是体重默认为60。这样,你就可以理解了。

body是视浏览器的不同而有不同的margin默认值。也就是说在IE中body默认margin是20px,这就是为什么body在不设置margin时,总有内补白的,宽度是20px左右。而table除用padding之外还有一个特别的属性是cellpadding,除了margin还有一个cellspacing属性一样,但两个属性可以同时设置。其实是没有冲突的,一般的table的cellpadding与cellspacing都是5px,如果你设置了这个属性后margin变为0了,这时你可以说table的margin默认是0,但事实上在CSS格式中是没有cellpadding与cellspacing这两个属性的。它们用其他和来代替了,比如对一个table进行margin约束时,如果设置了margin为0的话,内白也是0的。这时你可以说margin的默认值不为0,或者干脆说table不太支持margin。事实上,不同的浏览器对table的确有不支持margin的现象。

但对于div等,其实内补白也是不为0的。但不会说margin的默认值为多少的。也就是说不同的HTML区块元素有不同的margin默认值的。显然不说margin有默认值,只有说是区块元素有默认的margin值。

如果使用了标签提供的样式时,不需要对margin进行定义的,也就是说这是一个隐式的定义。如果所使用的标签内补白不合你的要求时,可以对也是必须对margin进行一个显式的定义。所以使用与否对你的浏览器解析时不会浪费空间代价的。也就是说不管是显式或是隐式的定义,浏览器都是要按要求找出了margin的值而进行重现的!

所以,你不必太关心什么时候使用。如果你觉得麻烦,可以对每一个区块元素进行margin的合适赋值的!至于什么时间使用margin:0,那就更好答了,只有要求不要内补白时才有可能要加的!因为<img>等元的margin默认值是0的,这时可以不加!怕出现意外时,