position
속성은 요소에 사용되는 위치를 지정하는데 사용된다. 이 속성을 사용하여 요소를 문서의 특정 위치에 배치하거나 다른 요소들과의 상대적인 위치에 배치할 수 있다.
position 속성의 속성값에는 5가지가 있다.
1. static
static
은 항상 요소를 일반적인 흐름에 따라 배치한다. 기본 속성값
으로 position 속성을 사용하지 않았을 경우에 요소들은 static 값이다.z-index
속성이 아무런 영향도 주지 않는다.top
right
bottom
left
같은 상하좌우 속성의 영향을 받지 않는다.top
right
bottom
left
의 값에 따라 offset을 적용한다. offset은 다른 요소에는 영향을 주지 않는다.relative
요소가 차지하는 공간은 static일 때와 같다.위치 지정 요소
relatvie
absolute
fixed
sticky
중 하나인 요소static
이 아닌 모든 요소 relative
인 요소absolute
또는 fixed
인 요소sticky
인 요소fixed
처럼 화면에 고정된다.z-index
속성은 페이지를 가상의 3차원 공간으로 생각하고 웹에서 요소의 z축 방향의 위치를 결정하는 속성이다.
보통 다음과 같은 요소에서 적용된다.
flex
grid
아이템z-index
가 없는 경우z-index
가 없는 경우 기본적으로 쌓임 순서는 다음과 같다.
1. 루트 요소
2. position을 주지 않은(static) 자식 요소들
3. 위치 지정 요소인 자식요소들
동일한 순서일 경우에는 HTML에 쓰여진 순서대로 쌓이게 된다.
z-index
가 있는 경우z-index
가 있는 경우 쌓임 맥락을 통해 쌓이는 순서가 결정된다.
쌓임맥락
이란 가상의 Z 축을 사용한 HTML 요소의 3차원 개념화이다.
요소들이 가진 속성으로 쌓임 맥락을 생성한다.
다음과 같은 조건을 갖췄을 경우 쌓임 맥락을 생성한다.
<html>
)absolute
또는 relative
이고, z-index가 auto
가 아닌 요소.fixed
또는 sticky
인 요소.auto
가 아닌 요소.auto
가 아닌 요소.쌓임 맥락 안의 자식 요소는 규칙을 동일하게 사용해 쌓인다. 하지만 자식의 z-index는 부모 요소의 안에서만 작동한다.
하나의 쌓임 맥락은 부모 쌓임 맥락 안에서만 하나의 단위로 간주된다.
다음 사진에서 DIV #4
는 DIV #1
보다 z-index 값이 더 크지만 해당 z-index는 부모 요소인 DIV #4
에서만 작동하고 전체적으로는 부모 요소의 z-index로 간주되기 때문에 DIV #1
보다 아래에 있는 것이다.
전체적으로 DIV #1
DIV #2
DIV #3
으로 쌓임 맥락이 생성됐고 DIV #3
요소 안에서 DIV #3
DIV #4
DIV #5
DIV #6
으로 쌓임 맥락이 생성된 것이다.