html - div 元素不起作用

标签 html css

我有两个div元素和 nav > nav_1 。当我添加margin-top:20px;时至nav , nav下降20px根据 body ,这是正确的。
但是当我添加这个 margin-top:20px;nav_1 , nav_1下降20pxnav根据 body 。
为什么 ? nav_1 nav 的元素它应该按照 nav 移动.
在这个问题中,我正在寻找解释

.nav {
  height: 500px;
  width: 500px;
  background-color: black;
  margin-top:50px;
}
.nav .nav_1 {
  height: 50px;
  width: 50px;
  background-color: blue;
  margin-top:50px;
}
<div class="nav">
  <div class="nav_1">
  </div>
</div>

最佳答案

这是“利润崩溃”机制的一个案例。简而言之,父元素和子元素的边距被折叠成单个边距,其大小等于其相应边距的最大值​​。有多种方法可以禁用这种行为,例如向父元素添加边框或填充。您可以在 mdn article 阅读有关该机制的更多信息。 .

关于html - div 元素不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34415720/

相关文章:

html - 在内容滚动修复下方插入框阴影

html - Bootstrap v3 中元素之间的垂直边距丢失了吗?

javascript - Tinymce : How do I get the formatting of my selected node?

javascript - 如何确保在 javascript 中只选择 2 个 div

css - Bootstrap 4 : Hidden elements with "d-md-none" in <span> starts linebreak, 如何防止这个?

jquery - 如何在使用带滚动的表格单元格时设置动态高度?

javascript - 如何让幻灯片在鼠标悬停时暂停

html - Mailchimp 嵌入表格 : too many recent signup requests on iOS 10 devices

php - jquery 函数只能工作一次?

css - 悬停时的 Wordpress 导航水平子菜单