<p>
    position: relative;는 static 값처럼 다른 요소와의 관계에 따라 일반적인 문서 흐름(normal flow)에 따라 배치됩니다.
</p>
<p class="relative">
    이 요소는 position: relative;로 설정되어 있습니다.
    <br>
    요소가 다른 요소와의 관계에 의해 일반적인 문서 흐름(normal flow)에 따라 배치됩니다.
</p>
<p>
    하지만, 원래 배치된 위치를 기준으로
    <br>
    top, bottom, left, right 속성으로 상대적인 간격(offset, 오프셋)을 적용하는 방식입니다.
</p>
<p>
    만약 top, bottom, left, right 속성이 지정되어 있지 않으면
    <br>
    요소는 마치 position: static이 설정된 것처럼 위치가 변하지 않고,
    <br>
    그 자리를 차지한 상태로 배치됩니다.
</p>
.relative {
    position: relative;
    border: 3px solid yellowgreen;
}
실제 적용된 모습
<section>
    <div class="box">Box</div>
    <div class="box relative-box">Relative Box</div>
    <div class="box">Box</div>
    <div class="box">Box</div>
</section>
section {
    padding: 1em;
    background-color: beige;
}
.box {
    width: 100px;
    height: 100px;
    background-color: silver;
    margin: 1em;
}
.box.relative-box {
    position: relative;
    top: 150px;
    left: 120px;
    background-color: gold;
}
실제 적용된 모습
<section>
    <p>
        position: relative;는 static 값처럼 다른 요소와의 관계에 따라 일반적인 문서 흐름(normal flow)에 따라 배치됩니다.
    </p>
    <p class="relative">
        이 요소는 position: relative;로 설정되어 있습니다.
        <br>
        요소가 다른 요소와의 관계에 의해 일반적인 문서 흐름(normal flow)에 따라 배치됩니다.
    </p>
    <p>
        하지만, 원래 배치된 위치를 기준으로
        <br>
        top, bottom, left, right 속성으로 상대적인 간격(offset, 오프셋)을 적용하는 방식입니다.
    </p>
    <p>
        요소가 간격(offset, 오프셋)의 조정으로 컨테이너에 오버플로(overflow)될 경우
        <br>
        스크롤바가 생기는 등의 레이아웃에 영향을 줄 수 있습니다.
    </p>
</section>
section {
    box-sizing: border-box;
    width: 300px;
    padding: 1em;
    background-color: beige;
    overflow: auto;
}
.relative {
    position: relative;
    left: 100px;
    border: 3px solid yellowgreen;
}
실제 적용된 모습
<h5>static인 형제 요소끼리의 쌓임 맥락</h5>
<p>나중에 마크업한 요소의 쌓임 순서가 높습니다.</p>
<div class="box first">first</div>
<div class="box second">second</div>

<h5>static인 형제 요소와 relative 요소의 쌓임 맥락</h5>
<p>relative 요소의 쌓임 순서가 높습니다.</p>
<div class="box first relative">first relative</div>
<div class="box second">second</div>
.box {
    color: #fff;
    width: 150px;
    height: 200px;
    border: 5px solid;
}
.first {
    background-color: rgba(255, 51, 0, 0.7);
    border-color: rgb(255, 51, 0);
}
.second {
    background: rgba(0, 102, 204, 0.7);
    border-color: rgb(0, 102, 204);
    margin-top: -100px;
}
.relative {
    position: relative;
}
실제 적용된 모습