首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么<div>内部的<div>没有注意到外部<div>边距?

为什么<div>内部的<div>没有注意到外部<div>边距?
EN

Stack Overflow用户
提问于 2013-12-27 12:54:49
回答 3查看 60关注 0票数 2

我有以下几点:

代码语言:javascript
复制
<div id="x">
   <div id="modal-body">
      <div class="modal-input-row">
       xxx
      </div>
   </div>
</div>

#modal-body {
  display: block;
  margin-top: 5rem;
}

.modal-input-row {
  margin-top: 2rem;
  overflow: hidden;
  display: block;
}

当我使用工具查看这些工具时,我看到:

  • 模态体顶部区域开始在#x <div>下方5 5rem。
  • 模态输入行顶部区域开始在#x <div>下面5 5rem。

由于模态输入行在模态体内部,那么它不是在#x <div>下面启动7 7rem吗?

EN

回答 3

Stack Overflow用户

发布于 2013-12-27 12:59:59

你看到的是一个叫做margin collapse的案子。在几种情况下都会发生这种情况,而您的情况就是在父母和第一个孩子之间没有间隙的场景。

如果没有边界、填充、内联内容或清除来将块的边缘顶部与其第一个子块的顶部分隔,或者没有边界、填充、内嵌内容、高度、最小高度或最大高度来将块的边缘底部与其上一个子块的边缘底部分开,那么这些边距就会崩溃。崩溃的边距在父级之外结束。

最好用垫子代替,因为它们不会倒塌。

W3C box model specification中还将更详细地讨论边缘崩溃。

票数 4
EN

Stack Overflow用户

发布于 2013-12-27 12:57:07

在HTML中,modal-input-row是一个类。

CSS标记应该是

代码语言:javascript
复制
.modal-input-row {
    margin-top: 2rem;
    overflow: hidden;
    display: block;
}

或:

变化

代码语言:javascript
复制
<div class="modal-input-row">

代码语言:javascript
复制
<div id="modal-input-row">
票数 1
EN

Stack Overflow用户

发布于 2013-12-27 13:00:34

根据这把小提琴:http://jsfiddle.net/gjNAW/,它似乎很好。

边界的缺失正在使它崩溃。

看这个没有边框的:http://jsfiddle.net/gjNAW/1/

撇开:

(1)你放错了“。”为了全班。

(2)不需要显式指定display:block,因为div是块元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20801096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档