清除浮动后,后面div的margin被吞掉了

    <style type="text/css">
        *{
            margin:0;
            padding: 0;
        }
        div{
            width: 200px;
            height: 200px;
            border:1px solid;
        }
        .a{
            float: left;
        }
        .b{
            margin-top: 250px;
            clear: both;
        }
    </style>
</head>
<body>
    <div class="a"></div>
    <div class="b"></div>
</body>

图片描述

请问b上面为什么没有margin?

阅读 2.6k
1 个回答

在CSS2.1中,水平的margin不会被折叠;而垂直margin可能在一些盒模型中被折叠,比如这个,当第一个层浮动,而第二个没浮动层的margin会被压缩。解决方法有两个,一是:两个div要么都加float,要么都不加;二是:在两个div之间再加一个div,而且style="clear:both;"。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题