盒模型-上下margin叠加问题

一开始,我们给a和b都设置了margin:10px;
理论上a和b之间的距离应该是20px,但实际上,a和b之间的距离只有10px;
(这个大小取决于a的margin-bottom和b的margin-top的大小,取大的那个);
这是因为css设计所造成的,css设计者考虑到我们要对段落进行控制,比如多个p标签
形成的段落,如果这些p标签都具备margin:10px的属性的话,那么他们中第一段落的顶部
外边距是10px,而第一与第二段落之间是20px,由此造成排版不一致所以设计这种百边
叠加原则。(原则如上面括号解释)。

div.html代码:

<html>
    <head>
        <title>div</title>
        <link rel = "stylesheet" type="text/css" href = "layout.css">
    </head>
    <body>
        <div id ="a">a</div>
        <div id="b">b</div>
    </body>
</html>

layout.css:

#a{
    background-color:#cccccc;
    border:2px solid#333333;
    width:100px;
    height:100px;
    margin:10px;
}
#b{
    background-color:#cccccc;
    border:2px solid#333333;
    width:100px;
    height:100px;
    margin:10px;
}

那么如何消除这种影响呢?
对于css的解释规则而言,一旦把某个元素设定了float属性,那么它们将不再进行空白边
叠加。

#a{
    background-color:#cccccc;
    border:2px solid#333333;
    width:100px;
    height:100px;
    margin:50px;
    float:left;
}
#b{
    background-color:lightgreen;
    border:2px solid#000000;
    width:100px;
    height:100px;
    margin:50px;
    float:left;
    clear:left;
}

左右margin加倍问题
当我们的盒对象为浮动状态时,在IE6之中,盒对象的左右margin会加倍。这是IE6的css
解析问题,我们可以通过设置对象的display:inline;来解决。

#a{
    background-color:#cccccc;
    border:2px solid#333333;
    width:100px;
    height:100px;
    margin:50px;
    float:left;
    display:inline;
}
#b{
    background-color:lightgreen;
    border:2px solid#000000;
    width:100px;
    height:100px;
    margin:50px;
    float:left;
    clear:left;
    display:inline;
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值