html - 绝对定位的 div 与另一个静态定位的 div 的边距顶部一起移动

标签 html css position

我有一个包含两个 div 的主体,一个是绝对定位的 div,另一个是静态默认定位的 div,我希望绝对定位的 div 占据屏幕的整个高度,但接下来出现的问题是当我尝试将 margin top 应用于静态定位的 div 时,它也被添加到绝对定位的 div。

如何让绝对定位的 div 不获得兄弟 div 的边距?

body {
  font-family: sans-serif;
  margin: 0;
  padding: 0;
  position: relative;
}

.div-1 {
  position: absolute;
  border: 2px solid red;
  width: 90%;
  left: 0;
  right: 0;
  margin: 0 auto;
  height: 100vh;
}

.div-2 {
  height: 200px;
  width: 90%;
  background-color: blueviolet;
  margin-top: 8rem;
}
<div class="div-1"></div>
<div class="div-2"></div>

最佳答案

问题是您有 margin collapse在 body 元素上。当没有内容分隔父元素和子元素(例如正文和 .div-2)时,会发生边距折叠。您可以通过将 body 元素的 display 属性设置为 flow-root 来轻松解决此问题。

body {
  font-family: sans-serif;
  margin: 0;
  padding: 0;
  position: relative;
  /* Set flow-root */
  display: flow-root;
}

.div-1 {
  position: absolute;
  border: 2px solid red;
  width: 90%;
  left: 0;
  right: 0;
  margin: 0 auto;
  height: 100vh;
}

.div-2 {
  height: 200px;
  width: 90%;
  background-color: blueviolet;
  margin-top: 8rem;
}
<div class="div-1"></div>
<div class="div-2"></div>

关于html - 绝对定位的 div 与另一个静态定位的 div 的边距顶部一起移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74919717/

相关文章:

javascript - Electron应用程序,plantUml以Html代码(jquery)生成图像,按钮下载它但没有任何源/href

javascript - 我怎样才能只选择表格的一列?

javascript - 无法覆盖点击事件以从用户创建的函数中锚定标签

css - 为什么是:before cannot be seen in safari?

jquery - 在幻灯片上调整 div 的大小

css - 歌剧 9 float :left inside position:relative cause problems

javascript - IE Canvas dataURI 安全错误

javascript - 根据数字类名称定位 div

javascript - 如何使用 jQuery 查找元素在页面中的位置?

php - 使用 PHP 的 CSS 主动导航突出显示。下划线有效,颜色无效。为什么?