* position 속성값
- static
- relative
- absolute
- fixed
- sticky
* 사용 방법
.page{
position: relative;
top: 30px;
right: 50px;
}
1. static
- 기본값.
- 요소를 일반적인 문서흐름에 따라 [ 왼쪽 -> 오른쪽 , 위 -> 아래 ] 로 배치한다.
- top, right, bottom, left, z-index 속성이 아무런 영향을 주지 않는다.
2. relative
기준 : 원래 있던 위치
- 요소를 일반적인 문서 흐름에 따라 배치한다.
- 자기 자신을 기준으로 top, right, bottom, left 속성으로 주어진 픽셀만큼 오프셋을 적용한다.
- 오프셋은 다른 요소에 영향을 주지 않는다. (레이아웃에서 요소가 차지하는 공간이 static 일 때와 같다.)
- 이동은 모두 태그의 안쪽으로 이루어지기 때문에, 태그 바깥으로 이동시키고 싶다면 음수값을 줘야한다.
- z-index의 값이 auto가 아니라면 새로운 쌓임 맥락을 생성한다.
3. absolute
기준 : 가장 가까운 포지셔닝된 조상요소
- 요소를 일반적은 문서 흐름에서 제거하고, 페이지 레이아웃에 공간도 배정하지 않는다.
- 가장 가까운 포지셔닝 된 조상요소를 기준으로 해당 위치에 배치된다.
- 조상중에 포지셔닝된 조상요소가 없다면 body태그가 기준이 된다.
- 최종 위치는 top, right, bototom, left 값이 지정한다.
- z-index의 값이 auto가 아니라면 새로운 쌓임맥락을 생성한다.
- 절대위치 지정 요소의 바깥 여백은 서로 상쇄되지 않는다.
- inset 속성은 top, right, bottom, left 에 모두 같은 값을 줄 때 사용된다.
- inset을 0으로 주면 대상에 꽉 차게 배치할 수 있다.
- top, bottom에 동시에 0을 주면 위아래로 가득 차게 배치할 수 있다.
- 크기를 정해주지않으면 내용물 만큼의 크기를 가진다.( 보통은 부모의 크기를 상속받는데 얘는 그렇지 않음 )
4. fixed
기준 : 브라우저 화면(뷰포트)
- 요소를 일반적인 문서 흐름에서 제거하고, 페이지 레이아웃에 공간도 배정하지 않는다.
- 주어진 위치에 고정된다.(스크롤을 내려도 위치가 고정된다.)
- 최종 위치는 top, right, bototom, left 값이 지정한다.
- 이 값은 항상 새로운 쌓임맥락을 생성한다.
- 단, 요소의 조상 중 하나가 transform, perspective, filter 속성 중 어느 하나라도 none이 아니라면 뷰포트 대신 그 조상을 컨테이닝 블록으로 삼는다.
5. sticky
기준 : 브라우저
- 요소를 일반적인 문서 흐름에 따라 배치한다.
- 테이블 관련요소를 포함해 가장 가까운, 스크롤되는 조상과, 표관련요소를 포함한 컨테이닝 블록을 기준으로 한다.
- top, right, bototom, left 의 값에 따라 오프셋을 적용한다.
- 원래 자리를 차지하고 있다고 주어진 위치에 닿으면 달라붙는다.
- 지정 위치에 오기 전까지는 static, 위치에 온 후에는 fixed처럼 보인다.
- 부모요소에 갇혀있기 때문에, 부모요소가 화면 밖으로 사라지면 같이 사라진다.
- 부모요소가 스크롤불가능하고, 스크롤가능한 다른 조상이 있는 경우 정상동작하지 않을 수 있다.
- 이 값은 항상 새로운 쌓임맥락을 생성한다.
- z-index의 기본값은 auto라고 함.
참조 :
https://developer.mozilla.org/en-US/docs/Web/CSS/Cascade
https://medium.com/baakademi/css-position-property-69d0596baf3c
'Style > CSS' 카테고리의 다른 글
CSS - grid (0) | 2023.09.11 |
---|---|
CSS - Flexbox (0) | 2023.09.11 |
CSS - Cascading (0) | 2023.09.10 |