gpt4 book ai didi

css - 包装 DIV 的边距问题

转载 作者:行者123 更新时间:2023-12-05 01:16:34 30 4
gpt4 key购买 nike

我正在尝试包装一个名为 content 的 div与另一个具有不同背景的 div。
但是,当将“margin-top”与 content 一起使用时div,似乎包装 DIV 获得了边距顶部而不是 content分区

代码:

<!DOCTYPE html>
<html>
<head>
<style>
html {
background-color:red;
}
#container-top {
background-color: #ccc;
overflow: hidden;
padding-top: 10px;
border-bottom: 1px solid #000;
height:30px;
}

#container-bottom {
background-color: #F1F4F2;
}
#content {
margin-top:20px;
}
</style>
</head>
<body>
<div id="container-top">
</div>
<div id="container-bottom">
<div id="content">
Hello
</div>
</div>
</body>
</html>

所以在这个例子中,div container-bottom获得 margin-top 而不是 content分区

我发现如果我在 container-bottom 中添加一个字符它解决了这个问题。
  <div id="container-bottom">
**A**
<div id="content">
Hello
</div>

但这当然不是一个好的解决方案......

谢谢,

乔尔

最佳答案

发生的事情被称为 边距折叠 .

如果 2 个元素的两个边距(仅顶部和底部,而不是右侧或左侧)接触(或者在您的情况下,内部 div 的顶部边距接触外部 div 的顶部边距),它们之间的最大值是使用(在您的情况下 max(0, 20) = 20)并尽可能远离接触元素(在您的情况下在容器 div 之外(最外层元素))。

要打破这种行为,您必须在 2 个边距之间放置一些东西 -> 容器 div 顶部的填充就可以了。

#container-bottom {
background-color: #F1F4F2;
padding-top: 1px;
}
#content {
margin-top:19px;
}

其他解决方案(有效,但可能不适合您的需求):

您可以简单地在容器 div 中放置一个 20 px 的 padding-top:
#container-bottom {
background-color: #F1F4F2;
padding-top: 20px;
}
#content {
}

有关更多信息,此页面解释得很好: Margin Collapsing

关于css - 包装 DIV 的边距问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5606204/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com