我有一个带有两个子div的容器div。
第一个孩子漂浮在右边。第二个孩子有一个上边缘。
由于某种原因,第二个孩子的边距正在拉下父容器,导致浮动元素也被拉下来。
有没有办法让这项工作没有将第二个孩子嵌套在另一个div中以防止拉下来?
元素是动态的,所以我不能在边栏上添加负边距来否定另一个孩子的边距。
HTML
<div id="content">
<div id="sidebar">sidebar</div>
<div id="messages">
a message
</div>
</div>
CSS
body {
background-color : red;
}
#content {
background-color: blue;
}
#sidebar {
background-color: yellow;
float: right;
}
#messages {
background-color: green;
margin-top : 20px;
}
答案 0 :(得分:1)
将overflow:hidden
提供给父div,即.content
答案 1 :(得分:1)
在.content
<div id="content">
<!-- Add this -->
<div id="sidebar">sidebar</div>
<div id="messages">
a message
</div>
</div>
这是你想要的吗?
点击此处的链接:https://developer.mozilla.org/en-US/docs/Web/CSS/margin_collapsing
父母和第一个/最后一个孩子 如果没有边框,填充,内联 内容或间隙将块的边距顶部与 margin-top的第一个子块,或没有边框,填充,内联 内容,高度,最小高度或最大高度来分隔 在最后一个孩子的边缘底部的块的底部 - 那些利润就会崩溃。倒塌的保证金最终在外面 父节点。
我使用了&#34;内联内容&#34;到&#34;修复&#34;问题,实际上您可以使用以下方法之一来修复它:
border: 1px solid
添加到.content
。padding: 1px
添加到.content
。clear:both
div