html - 为什么这个 float 的 div 被其 sibling 的边距拉低了?

标签 html css

我有一个包含两个子 div 的容器 div。

第一个 child 向右浮动。第二个 child 有上边距。

由于某种原因,第二个子元素的边距拉低了父容器,导致 float 元素也被拉低。

有没有办法在不将第二个 child 嵌套在另一个 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;
}

Fiddle

最佳答案

给父div一个overflow:hidden,即.content

关于html - 为什么这个 float 的 div 被其 sibling 的边距拉低了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22577372/

相关文章:

css - 如何动态设置组件主机的样式

javascript - 在页面加载时删除 CSS 模态闪光

html - 高度为 100% 的固定 div 的相等缩进

javascript - TCPDF 在新标签页/窗口中打开链接

html - 背景图片不覆盖手机

html - 如何旋转文本并正确定位? (CSS,HTML)

javascript - Foundation 5 Canvas 外菜单最小代码?

javascript - 在 InnerHTML 之后保留 CSS

html - CSS 后台性能

html - 我的响应图像与标题重叠。