html - 为什么这个 margin 会流出它的母公司?

标签 html css

我在另一个 div 中有一个 div ma​​inlogo 作为 Logo 。现在,当我在顶部给它留边距时,它会流到外部 div 之外。我想要的是,当我给它 margin-top 时,它应该向下移动,而不是将其 margin 移到父级之外。

.header {
  width: inherit;
  height: 100px;
  background-color: #0080FF;
  box-shadow: 0.5px 0.5px 0.5px 0.5px grey;
}
.headerdiv img {
  width: 80px;
}
.headerdiv {
  width: 1020px;
  margin: 0 auto;
  height: inherit;
  position: relative;
}
#mainlogo {
  height: 80px;
  width: 350px;
  margin-top: 10px;
}
<div class="header">
  <div class="headerdiv">
    <a href="onlinequiz login.php">
      <div id="mainlogo">
        <img src="Images/logo.png"></img>
      </div>
    </a>
  </div>
</div>

为什么会发生,我该如何解决?

最佳答案

棘手的 margin 规范。 This page对您遇到的行为有很好的解释。如果您不想将 #mainlogo 空格更改为 padding,您可以通过提供 overflow: hidden 属性来解决边距折叠问题到您的 .header

.header {
  width: inherit;
  height: 100px;
  background-color: #0080FF;
  box-shadow: 0.5px 0.5px 0.5px 0.5px grey;
  overflow: hidden;
}
.headerdiv img {
  width: 80px;
}
.headerdiv {
  width: 1020px;
  margin: 0 auto;
  height: inherit;
  position: relative;
}
#mainlogo {
  height: 80px;
  width: 350px;
  margin-top: 10px;
}
<div class="header">
  <div class="headerdiv">
    <a href="onlinequiz login.php">
      <div id="mainlogo">
        <img src="Images/logo.png"></img>
      </div>
    </a>
  </div>
</div>

此外,您可以考虑将 #mainlogo div 更改为 span 并自动关闭您的 img标记以避免意外的跨浏览器怪癖。

关于html - 为什么这个 margin 会流出它的母公司?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38073135/

相关文章:

jquery - 根据屏幕宽度显示或隐藏DataTables列

javascript - 我怎样才能在 HTML 中运行它?

javascript - 如何从html内容中获取div文本

javascript - 如何使用此脚本创建多个插入文本区域的按钮

html - 不允许拆分词

html - 使用 CSS 创建响应式网格 (100% x 100%)

java - 获取 XML 文件的网站 URL JSP-Java

jquery - 动态缩小缩略图大小,均匀占用空间

c# - 使用C#通过div中的内容获取div类

php - 获取选项名称 php