对父项的绝对定位 <div>

Absolute Positioning to parent <div>

如您所见,它们是两个 盒子 ,其中一个父 div 和一个子 div 在包装 div 内。所以我想在他们的相对父 div 中应用绝对位置而不是 body.

/*--CSS--*/
 
.wrapper{
  Height:80vh;
  border:1px solid red;
}
.div_1{
  Height:70vh;
  border:1px solid blue;
  margin:20px;
}
.sub_div{
  Height:40vh;
  border:1px solid green;
  margin:20px;
}

.box{
    height:100px;
  width:100px;
  background:orange;
  position:absolute; /*Applied position absolute*/
}

.box1{
  display:flex;
  justify-content:center;
  align-items:center;
  top:0;
  left:0;
}
.box2{
  display:flex;
  justify-content:center;
  align-items:center;
  bottom:0;
  right:0;
}
<!--HTML-->
<div class="wrapper">
  <div class="div_1">
    <div class="box box1">
    box1
    </div>
    <div class="sub_div">
      <div class="box box2">
      box2
      </div>
    </div>
  </div>
</div>

他们实现这一目标的方法也是如此。

绝对位置:

It will position itself according to the closest positioned ancestor.

在你的例子中,你没有任何定位的祖先,所以你的绝对元素将定位到视口。

你要给你的祖先一个不同于静态的位置。我建议在这种情况下使用 relative,因为它尊重页面的流程。

您必须在 CSS 中添加:

.div_1{
  height:70vh;
  border:1px solid blue;
  margin:20px;
  position: relative; // now this element is considered a positioned element.
}
.sub_div{
  height:40vh;
  border:1px solid green;
  margin:20px;
  position: relative;
}

您可以在以下位置阅读有关位置如何影响元素的更多信息:https://cssreference.io/positioning/