CSS 그리드 레이아웃 및 위치 설정 기법 요약
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
웹 개발자(중급 이상), CSS 레이아웃 설계에 관심 있는 개발자
핵심 요약
- CSS Grid는
grid-template-columns
와grid-template-rows
로 2차원 레이아웃을 간단하게 구현 가능 - Positioned Layout의
position: absolute
/fixed
/sticky
는 요소 정렬의 자유도를 높임 z-index
와 Stacking Context를 통해 요소의 겹침 순서를 제어하며,grid-template-areas
로 영역 명시 가능
섹션별 세부 요약
1. CSS Grid 레이아웃
- Grid Container 생성:
display: grid
또는inline-grid
설정 - 행/열 정의:
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr))
로 반응형 레이아웃 구현 - 간격 설정:
grid-gap: 10px
으로 요소 간 간격 조절 - 영역 명시:
grid-template-areas
로 'header', 'main', 'footer' 등 영역 정의
2. Positioned Layout
- Relative:
top: 20px
로 기존 흐름에 영향 없이 이동 - Absolute: 가장 가까운
position: relative
요소 기준으로 위치 설정 - Fixed: 뷰포트 기준으로 고정 (
top: 0; left: 0
) - Sticky: 스크롤 시 특정 위치에서 고정 (
top: 0
)
3. Anchor Positioning
- HTML의
anchor
속성으로 기준 요소 지정 position: anchor
로 상대 요소 정렬 (예:below: my-anchor
)- 공간 부족 시 fallback 위치 자동 처리
4. Stacking Order & z-index
- 자연적 순서: HTML 순서에 따라 스택
- z-index 제어:
position: relative
요소에z-index: 10
적용 - Stacking Context 생성:
z-index: 1
+position: relative
로 새 컨텍스트 생성 - Flex/Grid 예외:
display: flex
/grid
자식 요소는position: static
시도해도z-index
작동
결론
- 반응형 레이아웃은
grid-template-columns: repeat(auto-fit, minmax(...))
로 구현 - 요소 겹침 문제는
z-index
와position: relative
로 해결 - 브라우저 개발자 도구의 3D 시각화 기능 활용해
stacking context
디버깅 anchor
속성으로 복잡한 정렬 로직 대체 가능