JavaScript

웹 개발의 필수 언어

동적인 웹 페이지 구현을 위한 핵심 프로그래밍 언어.

Java

객체지향 프로그래밍

안정적이고 확장성 있는 백엔드 개발의 대표 언어.

HTML

웹의 기초

웹 페이지의 구조를 정의하는 마크업 언어.

React

현대적 UI 라이브러리

효율적인 사용자 인터페이스 구축을 위한 JavaScript 라이브러리.

CSS

웹 디자인의 핵심

웹 페이지의 시각적 표현을 담당하는 스타일 언어.

Spring

자바 웹 프레임워크

기업급 애플리케이션 개발을 위한 강력한 프레임워크.

CSS

CSS Position과 z-index 트러블 슈팅

lamarcK 2025. 5. 16. 17:33

문제 상황

카테고리 섹션이 배경 요소(#starBackground)에 가려져 보이지 않는 현상 발생

이런 식으로 실제로는 중앙에 위치해있지만 보이지 않는 문제 발생

원인 파악

  1. 배경 요소에 position: fixed 속성이 적용되어 있었음
  2. 카테고리 섹션에 position 속성이 없어 z-index가 제대로 작동하지 않음

문제의 기술적 설명

  • position: fixed가 적용된 요소는:
    • 새로운 쌓임 맥락(Stacking Context)을 생성
    • 뷰포트를 기준으로 고정
    • 일반 문서 흐름에서 분리
    • 기본적으로 다른 요소들보다 상위에 표시됨

해결 방법

css가 가지는 기본적인 쌓임 맥락 우선 순위의 문제이기 때문에 position: relative를 추가해서 쌓임 맥락을 줘서 보이도록 조정

//문제가 있던 코드
#starBackground {
    position: fixed;
    z-index: 0;
}

.category {
    /* position 속성 없음 */
}
// 해결된 코드
#starBackground {
    position: fixed;
    z-index: 0;
}
.category {
    position: relative; /* 추가 */
}

학습 포인트

  1. z-index는 position: static(기본값)인 요소에서는 작동하지 않음
  2. position: fixed가 적용된 요소는 자동으로 새로운 쌓임 맥락을 생성
  3. z-index를 사용하려면 해당 요소에 position 속성(relative, absolute, fixed)이 필요

관련 개념

  • CSS Stacking Context (쌓임 맥락)
  • Position 속성
  • z-index 동작 원리

참고사항

  • position 속성값에 따른 쌓임 맥락 생성 조건 이해 필요
  • z-index 사용 시 항상 position 속성 확인 필요
  • fixed 요소와 다른 요소간의 층위 관계 주의

'CSS' 카테고리의 다른 글

CSS 네임스페이스와 BEM 방법론  (0) 2025.06.06