绝对定位:为什么我的盒子偏移了?

Absolute positioning: why are my boxes offset?

这似乎是一个相当基本的问题,但我只是想弄清楚一些。

上下文:

我正在开发一个相当复杂的网站,我的一个展示想法包括一系列可以在屏幕上生成的框。由于太复杂而无法在这里解释的原因,我决定组织这些框的最佳方式是通过我的 HTML 中的父子结构。这是因为将子 div 的位置值设置为 100% 远离(顶部、左侧、右侧、底部)是方框镶嵌而不重叠的好方法。

这是我的HTML:

.box-1,
.box-2,
.box-3,
.box-4 {
    display: flex;
    border: solid black;
    justify-content: center;
    align-items: center;
}

.box-1 {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 150px;
    height: 150px;
    border: solid rgb(72, 255, 72);
    border-width: 3px;
}

.box-2 {
    position: absolute;
    top: 0%;
    left: 100%;
    width: 150px;
    height: 150px;
    border: solid rgb(255, 72, 72);
    border-width: 3px;
}

.box-3 {
    position: absolute;
    top: 0%;
    left: 100%;
    width: 150px;
    height: 150px;
    border: solid rgb(218, 255, 56);
    border-width: 3px;
}

.box-4 {
    position: absolute;
    top: 0%;
    left: 100%;
    width: 150px;
    height: 150px;
    border: solid rgb(112, 86, 255);
    border-width: 3px;
}
<!DOCTYPE html>

<html>

<head>
  <meta http-equiv="content-type" content "text/html; charset=UTF-8"/>
  <link rel="stylesheet" type="text/css" href="styles.css">
</head>

<body>
  <div class="box-1">
    box1
    <div class="box-2">
      box2
      <div class="box-3">
        box3
        <div class="box-4">
          box4
        </div>
      </div>
    </div>
  </div>

</body>


</html>

有谁知道为什么我的每个框都在最高值中偏移?可能与边距有关吗?

这是我正在谈论的 img:

enter image description here

原因是因为top: 0%。如果你删除它,它会并排对齐。原因是因为 top 属性 将元素的上边缘设置为从其父容器的上边缘向下 0%。父容器有一个位于自身外部的边框,这就是为什么它看起来有层叠效果。边框的底部是元素的上边缘。

https://www.w3schools.com/cssref/pr_pos_top.asp