position
- 요소를 어떻게 배치할지 결정하는 CSS 속성
- 우선 Normal Flow 개념을 이해하는 것이 중요함
- Normal Flow란? 요소의 레이아웃을 전혀 제어하지 않았을 때, 브라우저에서 기본적으로 요소가 배치되는 흐름
- Remind) 인라인 요소, 블록 레벨 요소 등 특성에 따라 기본적으로 요소가 배치되는 방식이 있음
- 즉 요소의 특성에 따라 Normal Flow가 정해져 있는 것
- 코드에 작성된 순서에 맞게 차곡차곡 HTML 요소가 표시된다.
- positon 속성을 통해 Normal Flow에서 벗어나, 개발자가 원하는 대로 제어하여 배치할 수 있음
- position 속성은 top, bottom, left, right 속성과 함께 사용함
- position의 종류에 따라 top, bottom, left, right를 적용하는 방식이 달라짐
- 종류
- static
- relative
- absolute
- fixed
- sticky
static
- default 값
- 기준이 없다. 좌표적용 X
- top, bottom, left, right 속성을 사용할 수 없음 (작성해도 무시된다)
- 단순히 Normal Flow로 배치된다.
relative
- 기준 : 원래 내 위치
- 동작 흐름
- Normal Flow를 따라 배치한 원래 자기 자신의 위치를 기준으로
- top, right, bottom, left의 값에 따라 최종 위치 지정 (offset 적용)
- 값 : 양수값, 음수값 모두 줄 수 있음
- 반대가 되는 값을 동시에 선언하면?
- top, bottom을 동시에 선언하면? top만 적용
- left, right를 동시에 선언하면? left만 적용
absolute
- 기준 : 부모
- 동작 흐름
- 요소를 Normal Flow에서 제거하고,
- 가장 가까운 부모 요소를 기준으로
- position : static(디폴트 값)이 아닌 가장 가까운 부모 요소
- 그런 요소가 없으면 body를 기준으로
- top, right, bottom, left 값에 따라 최종 위치 지정 (offset 적용)
- Normal Flow에서 제거되므로, 마치 float 처럼 새로운 레이어가 추가되어 둥둥 뜨게 된다.
- 주로 기준점으로 잡고싶은 부모를 position:relative로 설정하고, 자식 요소를 position:absolute로 자주 쓴다.
fixed
- 기준 : 브라우저
- 동작 흐름
- 요소를 Normal Flow에서 제거하고,
- 눈에 보이는 뷰포트를 기준으로
- top, right, bottom, left 값에 따라 최종 위치 지정
- 스크롤을 쭉 해도 계속 따라온다.
- 뷰포트(눈에 보이는 창)이 계속 변경되기 때문에!
- 예) 팝업창, 문의하기 버튼, 네비게이션 바, 광고창 등
sticky
- 동작 흐름
- Normal Flow를 따르고,
- 가장 가까운 스크롤이 되는 부모를 기준으로
- 기본적으로 스크롤이 되는 상황에서만 효과가 나타난다.
- top, right, bottom, left 값에 따라 최종 위치 지정
- sticky라는 이름을 기억하면 이해하기가 쉽다. 스크롤을 내리다가 특정 시점부터 마치 fixed처럼 동작한다.
z-index
- 여러 개의 요소가 겹칠 때, 위로(z축으로) 쭉 쌓이게 된다.
- 겹치게 쌓이면 어떤 요소는 가려질 수 있다.
- z축의 순서를 지정하는 속성이 z-index
- z-index는 position이 지정된 요소에만 동작한다.
- 값 : 정수(양의 정수, 음의 정수)
- 수가 클수록 위로 올라온다.
- z-index: auto
- default 값
- 코드를 작성한 순서대로 쌓이게 된다.
- position을 별도로 지정하면(==relative, absolute, fixed, sticky), static보다 무조건 위로 뜨게 된다.
- 예) 팝업창, 경고창 등
overflow
- 컨텐츠가 요소의 크기보다 많아서 넘쳐 흐를 때, 이를 어떻게 표현할지 지정하는 속성
- 참고) 요소의 크기 지정 : width, height
- 내용이 넘치면 다른 요소와 내용이 겹칠 수 있기 때문에 목적에 맞게 조정해줘야 함
- overflow: visible
- default 값
- 넘치면 깨져서 보임
- overflow: hidden
- 넘치는 컨텐츠는 안보임
- overflow: scroll
- 넘치는 컨텐츠는 스크롤로 내려서 볼 수 있음
- overflow: auto
- 브라우저가 알아서 선택
'Mark Up > CSS' 카테고리의 다른 글
[CSS] Chapter 14. CSS Position(relative, absolute) 한 방에 정리 (0) | 2023.04.18 |
---|---|
[CSS] Chapter 13. 브라우저 크기마다 CSS가 바뀌는 Media Query (0) | 2023.01.07 |
[CSS] Chapter 11. 레이아웃 만들기 - grid (0) | 2022.12.29 |
[CSS] Chapter 10. 레이아웃 만들기 - float (0) | 2022.12.29 |
[CSS] Chapter 09. 레이아웃 만들기 - display_inline (0) | 2022.12.29 |
댓글