代码之家  ›  专栏  ›  技术社区  ›  ricolxwz

CSS:绝对内部绝对值和相对内部绝对值之间的区别

  •  0
  • ricolxwz  · 技术社区  · 3 年前

    我最近尝试了一个CSS项目来绘制一个国家的国旗。

    这是我的代码:

        div.flag {
          width: 900px;
          height: 600px;
          background-color: red;
          position: relative;
        }
        
        div.flag > div {
          position: absolute;
          top: 150px;
          width: 900px;
          height: 300px;
          background-color: blue;
        }
        
        div.flag > div > div {
          width: 200px;
          height: 200px;
          background-color: white;
          border-radius: 50%;
          position: relative;
          left: 350px;
          top: 50px;
        }
        
        p {
          font-size: 5rem;
          color: white;
          text-align: center;
        }
        
        div.flag > div > div > p {
          color: black;
        }
    <div class="flag">
        <p>The Flag</p>
        <div>
          <div>
            <p>of Laos</p>
          </div>
        </div>
    </div>

    当我没有指定文本“老挝”的边距和圆圈的位置设置为相对时,文本边距会像这样向下推圆圈:

    enter image description here

    但是,当我将圆的位置设置为绝对位置而不指定文本边距时,圆的位置会正确:

    enter image description here

    到底发生了什么?有人能帮忙吗?

    1 回复  |  直到 3 年前
        1
  •  0
  •   Shivangam Soni    3 年前

    嗯,当使用 relative ,定位相对于元素的正常流动发生,即,如果您说 top: 10px; 元素将仅从其预期位置移动10px。

    使用时 absolute ,元件从正常流动中移除&定位相对于最近定位的祖先发生。因此,“顶部:10px;”将元件10px从定位的祖先顶部向下定位。

    您可以使用 Documentation