CSS Grid 빌더 완벽 가이드
CSS Grid 빌더는 CSS Grid Layout을 시각적으로 설계하고 완성된 코드를 자동으로 생성해주는 무료 온라인 도구입니다. CSS Grid는 2차원 레이아웃 시스템으로, 행(row)과 열(column)을 동시에 제어할 수 있어 복잡한 웹 레이아웃을 직관적으로 구현할 수 있습니다. 이 도구를 사용하면 grid-template-columns, grid-template-rows, gap, justify-items, align-items 등 주요 속성을 실시간으로 조정하면서 미리보기 화면에서 즉시 결과를 확인할 수 있습니다.
CSS Grid Layout이란?
CSS Grid Layout은 웹 페이지의 2차원 레이아웃을 구성하기 위한 CSS 모듈입니다. Flexbox가 1차원(행 또는 열) 레이아웃에 최적화되어 있다면, Grid는 행과 열을 동시에 다룰 수 있어 더 복잡한 레이아웃을 손쉽게 만들 수 있습니다. grid-template-columns 속성으로 열의 크기를 정의하고, grid-template-rows로 행의 크기를 정의합니다. fr 단위는 사용 가능한 공간을 비율로 나누어 유연한 레이아웃을 만들 수 있게 해줍니다.
주요 기능 안내
- 열/행 수 설정: 1~12개까지 자유롭게 열과 행 수를 지정할 수 있습니다.
- 다양한 크기 단위: fr, px, %, auto, minmax(), repeat() 등 모든 CSS Grid 크기 단위를 지원합니다.
- gap 설정: row-gap과 column-gap을 한 번에 또는 개별적으로 설정할 수 있습니다.
- 아이템 배치: 각 아이템의 grid-column, grid-row, span을 지정하여 셀을 병합할 수 있습니다.
- 정렬 속성: justify-items, align-items, justify-content, align-content, justify-self, align-self까지 모든 정렬 속성을 지원합니다.
- 실시간 미리보기: 속성 변경 시 즉시 미리보기에 반영되어 결과를 확인할 수 있습니다.
- 프리셋 레이아웃: Holy Grail, 대시보드, 갤러리 등 자주 사용되는 레이아웃 패턴을 한 클릭으로 적용합니다.
- 코드 생성: 설정한 레이아웃의 CSS 코드를 자동으로 생성하고 복사할 수 있습니다.
fr 단위 이해하기
fr(fraction) 단위는 CSS Grid에서 사용 가능한 공간을 비율로 나누는 단위입니다. 예를 들어 grid-template-columns: 1fr 2fr 1fr은 사용 가능한 공간을 1:2:1 비율로 나눕니다. px나 %와 달리 남은 공간을 자동으로 분배하므로 반응형 레이아웃에 매우 유용합니다. minmax(200px, 1fr)처럼 최소값과 최대값을 함께 지정하면 더 유연한 레이아웃을 만들 수 있습니다.
span을 활용한 셀 병합
grid-column: span 2 또는 grid-row: span 3과 같이 span 키워드를 사용하면 여러 셀을 하나로 병합할 수 있습니다. 이 도구에서는 아이템을 클릭한 후 column span과 row span을 조정하여 원하는 크기의 영역을 쉽게 만들 수 있습니다. 헤더, 사이드바, 콘텐츠 영역 등을 구분하는 전형적인 레이아웃 패턴을 구현할 때 span 기능이 핵심적으로 사용됩니다.
자주 묻는 질문 (FAQ)
Q. CSS Grid와 Flexbox의 차이점은 무엇인가요?
A. Flexbox는 1차원(행 또는 열 중 하나) 레이아웃에 최적화되어 있고, CSS Grid는 2차원(행과 열 동시) 레이아웃을 지원합니다. 네비게이션 바나 단일 행/열 정렬은 Flexbox가 적합하고, 전체 페이지 레이아웃이나 복잡한 격자 구조에는 Grid가 유리합니다. 실무에서는 두 기술을 함께 사용하는 것이 일반적입니다.
Q. repeat() 함수는 어떻게 사용하나요?
A. repeat(3, 1fr)은 1fr 1fr 1fr과 동일합니다. repeat(auto-fill, minmax(200px, 1fr))처럼 auto-fill이나 auto-fit과 함께 사용하면 화면 크기에 따라 열 수가 자동으로 조정되는 반응형 레이아웃을 만들 수 있습니다. 이 도구의 grid-template-columns 입력란에 직접 repeat() 함수를 입력할 수 있습니다.
Q. CSS Grid의 브라우저 호환성은 어떤가요?
A. CSS Grid는 모든 최신 브라우저(Chrome, Firefox, Safari, Edge)에서 완벽하게 지원됩니다. Internet Explorer 11은 구버전 Grid 명세만 부분 지원하므로, IE11 지원이 필요한 경우 -ms- 접두사와 제한된 기능만 사용해야 합니다. 2024년 기준 전 세계 브라우저의 97% 이상이 CSS Grid를 지원하므로 안심하고 사용할 수 있습니다.
Q. gap 속성에서 row-gap과 column-gap을 다르게 설정할 수 있나요?
A. 네, gap 속성에 값을 두 개 입력하면 됩니다. 예를 들어 gap: 10px 20px은 row-gap 10px, column-gap 20px을 의미합니다. 값을 하나만 입력하면 행과 열 간격이 동일하게 적용됩니다. 이 도구의 gap 입력란에 10px 20px처럼 공백으로 구분하여 입력하면 됩니다.
Q. 생성된 코드를 바로 프로젝트에 사용할 수 있나요?
A. 네, 생성된 CSS 코드는 표준 CSS Grid 속성만 사용하므로 어떤 프로젝트에서든 바로 복사하여 사용할 수 있습니다. 클래스명(.grid-container, .grid-item-1 등)은 프로젝트에 맞게 변경하시면 됩니다. React, Vue, Angular 등 어떤 프레임워크에서도 호환됩니다.