上下Margin叠加问题

从盒子模型我们可以得知: 对象之间的间距是由两个对象的盒子模型的最终计算值得出来的。但有一种特殊情况====>上下对象的间距问题。 当两个对象呈现出上下关系时而且都具备margin属性的时候,此时由margin所造成的外边距将会出现叠加的现象。还是下面例子吧.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Margin叠加问题</title>

<style type="text/css">

#a{width:100px;height:100px;background-color:#eeeeee;border:5px solid #bbbbbb;margin:10px;}

#b{width:100px;height:100px;background-color:#999999;border:5px solid #bbbbbb;margin:10px;}

</style>

</head>

<body>

<div id="a"></div>

<div id="b"></div>

</body>

</html> 
也许你会认为:由于对象a有下边距10px,b对象有上边距10px,因此他们的上下距离是20px;其实不然,它们真正的距离都是10px.
这就是"空白边叠加规则",空白边叠加时,以较大的margin值为准。比如讲上面a对象的margin:50px,那么a与b的上下间距变成50px
对于CSS的解释规则而言:一旦把某个元素设定了float属性,那么它们将不在遵循空白边叠加规则。下面代码所示:
<style type="text/css">

#a{width:100px;height:100px;background-color:#eeeeee;border:5px solid #bbbbbb;margin:10px;float:left;}

#b{width:100px;height:100px;background-color:#999999;border:5px solid #bbbbbb;margin:10px;float:left;clear:left;}

</style>
这样a与b之间上下间距就是20px了。由次细心的朋友会发现,在IE6.0下左边距也变成20px了,而IE7.0与FF左边距都是10px,这引发了另外一个问题,
IE6.0盒子模型问题====>外边距叠加问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值