🧩

CSS Subgrid

부모 그리드 트랙을 자식에게 상속

그리드 레이아웃에서 자식 요소가 자체 그리드를 가질 때, 부모의 트랙 정의와 동기화되지 않는 문제가 있었습니다. Subgrid는 grid-template-rows나 grid-template-columns에 subgrid 값을 지정하여 부모 트랙을 그대로 물려받습니다.

이를 통해 카드 목록에서 제목, 본문, 버튼 영역이 서로 다른 카드끼리도 완벽하게 정렬되는 레이아웃을 구현할 수 있습니다.

적용 방법

1

부모 요소에 display: grid와 트랙 정의를 설정한다

2

자식 요소에도 display: grid를 적용한다

3

grid-template-rows: subgrid 또는 grid-template-columns: subgrid를 지정한다

4

자식 요소의 grid-row로 부모 트랙 범위를 지정한다

장점

  • 중첩 그리드에서 정렬 일관성이 보장된다
  • 복잡한 workaround 없이 깔끔한 코드로 구현 가능하다

단점

  • 부모 트랙에 의존하여 독립적 레이아웃 변경이 어려울 수 있다
  • 디버깅 시 부모-자식 트랙 관계 파악이 복잡할 수 있다

사용 사례

카드 목록에서 헤더, 본문, 푸터 영역 정렬 통일 폼 레이아웃에서 라벨과 입력 필드 정렬 유지

참고 자료