css CSS 네이티브 네스팅(native nesting)
페이지 정보

본문
CSS 네이티브 네스팅(native nesting)은 CSS 규칙을 다른 규칙 안에 중첩하여 작성하는 기능으로, CSS 전처리기(preprocessor) 없이도 코드를 더 간결하고 구조적으로 만들 수 있게 해줘요. 이 기능은 CSS Nesting Module에 정의되어 있으며, 현재 대부분의 최신 브라우저에서 지원하고 있어요.
네이티브 네스팅의 특징 및 사용법
기존에는 여러 선택자를 사용해 HTML의 계층 구조를 나타내려면 아래처럼 반복적으로 선택자를 작성해야 했어요.
.card {
/* ... */
}
.card .title {
/* ... */
}
.card .content {
/* ... */
}
.card .button {
/* ... */
}
네이티브 네스팅을 사용하면 부모 선택자 안에 자식 선택자를 중첩해 작성할 수 있어 코드가 훨씬 깔끔해져요.
.card {
/* ... */
.title {
/* .card .title과 동일 */
}
.content {
/* .card .content와 동일 */
}
.button {
/* .card .button과 동일 */
}
}
& 기호 사용
네스팅 규칙 안에서 부모 선택자를 참조할 때 & 기호를 사용해요. 이 기호는 상위 선택자를 나타내는 역할을 하며, 다음과 같은 다양한 방식으로 활용할 수 있어요.
상태 선택자: :hover, :focus 등과 같은 의사 클래스(pseudo-classes)를 부모 선택자와 결합할 때 유용해요.
.button {
background-color: blue;
&:hover { /* .button:hover와 동일 */
background-color: darkblue;
}
}
복합 선택자: 인접 형제 선택자(+)나 일반 형제 선택자(~) 등과 결합할 때 사용해요.
.item {
/* ... */
& + & { /* .item + .item와 동일 */
margin-left: 10px;
}
}
Sass/SCSS 네스팅과의 차이점
CSS 네이티브 네스팅은 Sass/SCSS와 매우 유사하지만, 몇 가지 중요한 차이점이 있어요.
태그 선택자 중첩: 네이티브 네스팅에서는 태그 선택자(예: h1, p)를 중첩할 때 & 기호를 사용해야만 정상적으로 작동해요. Sass에서는 태그 선택자를 바로 중첩할 수 있어요.
/* 네이티브 CSS */
.container {
& h1 {
/* ... */
}
}
/* Sass (동일하게 작동) */
.container {
h1 {
/* ... */
}
}
@media 규칙 중첩: @media 쿼리도 중첩할 수 있으며, 이 경우에도 @media 쿼리가 상위 선택자에 적용돼요.
.card {
/* ... */
@media (min-width: 768px) {
/* 뷰포트 너비가 768px 이상일 때 .card에 적용 */
flex-direction: row;
}
}
지원 현황
네이티브 네스팅은 2023년 후반부터 크롬, 파이어폭스, 사파리 등 주요 브라우저에서 공식적으로 지원하기 시작했어요. 따라서 이제는 별도의 전처리 과정 없이도 네스팅 기능을 활용할 수 있어요.
장점은 다음과 같아요.
- 가독성 향상: HTML 구조와 유사하게 CSS 코드를 작성할 수 있어 코드를 읽기 쉬워져요.
- 유지보수 용이: 선택자의 반복을 줄여 수정이 필요한 경우 더 빠르게 찾고 변경할 수 있어요.
- 전처리기 의존성 감소: 빌드 프로세스 없이도 네스팅을 사용할 수 있어 개발 워크플로우를 간소화할 수 있어요.
관련링크
- 이전글MariaDB에서 테이블을 UTF8MB4로 변경하는 방법 25.10.01
- 다음글tailwind css 버전4부터 네스팅 지원 25.09.26
댓글목록
등록된 댓글이 없습니다.