block : 한 줄 모두 차지 (대표 element -
<div>
,<p>
)inline : 콘텐츠 크기 만큼만 차지 (대표 element -
<span>
)
값 | 의미 |
---|---|
static | 기준 없음 (배치 불가능 / 기본값) |
relative | 요소 자기 자신을 기준으로 배치 |
absolute | 부모(조상) 요소를 기준으로 배치 |
fixed | 뷰포트 기준으로 배치 |
stickey | 스크롤 영역 기준으로 배치 |
요소를 일반적인 문서 흐름에 따라 배치한다.
요소 자기 자신의 원래 위치(static일 때의 위치)를 기준으로 배치한다.
div#a {
background: #52D4FF;
position: static;
}
div#b {
background: #FF63EA;
position: relative;
top: 0px;
left: 100px;
}
div#c {
background: #C5FF63;
position: relative;
top: 0px;
left: 200px;
}
요소를 일반적인 문서 흐름에서 제거한다.
가장 가까운 위치에 있는 조상 요소를 기준으로 배치한다.
<body>
요소)를 기준으로 삼는다. (static을 제외한 값)div#a {
background: #52D4FF;
position: static;
}
div#b {
background: #FF63EA;
position: absolute;
top: 0px;
left: 100px;
}
div#c {
background: #C5FF63;
position: absolute;
top: 0px;
left: 200px;
}
Parent에게 Position 값이 있는 경우?
Grandparent에게 Position 값이 있는 경우?
부모, 조상 전부 뒤져봐도 Position 값이 없는 경우? (Parent, GrandParent, <body>
태그, <html>
태그까지 )
DOM
: Document Object Model)뷰포트를 기준으로 삼고 싶은 경우?
absolute
를 사용해서 똑같이 구현할 수 있지만, absolute
는 조상 요소의 위치를 기준점으로 삼는 개념이므로, 뷰포트를 기준으점으로 삼으려면 fixed
를 사용한다.