CSS Grid 생성기
CSS Grid는 2D 레이아웃을 만드는 표준 방법이지만 컨테이너 문법은 쉽게 잊힙니다. 이 생성기가 컨테이너 규칙을 대신 작성해 드립니다. 동일한 너비의 열을 고정 개수로, 트랙 사이의 간격을, 그리고 최소 너비 아래에서는 auto-fit 열로 전환하는 미디어 쿼리를 만들어 작은 화면에서도 레이아웃이 읽기 쉽게 유지됩니다. 출력은 순수한 컨테이너 CSS이며, 요소 배치는 직접 스타일시트에서 합니다.
그리드 만드는 방법
-
1
열 개수 설정
동일한 너비의 트랙 1~12개.
-
2
열 최소 너비 설정
이 너비 아래에서는 auto-fit으로 전환되어 각 열이 사용 가능한 최소 크기를 유지합니다.
-
3
간격 설정
열과 행 사이의 공간.
-
4
CSS 생성
도구가 컨테이너 규칙과 반응형 대체를 함께 작성합니다.
-
5
코드 복사
컨테이너 규칙을 스타일시트에 붙여넣고 요소는 자체 `grid-column` / `grid-row` 규칙으로 배치하세요.
생성되는 컨테이너
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
@media (max-width: 660px) {
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
repeat(3, minmax(0, 1fr)): 사용 가능한 너비를 균등하게 나누는 3개 열.1fr은 남은 공간의 한 분획이며,minmax(0, 1fr)은 열이 콘텐츠 크기보다 작게 줄어들 수 있게 합니다.gap: 각 트랙 사이의 간격.- 미디어 쿼리가
repeat(auto-fit, minmax(220px, 1fr))로 전환되며, 각각 220px 이상인 열을 가능한 한 많이 만듭니다. 중단점은 열 개수에 최소 너비를 곱한 값(120px 하한)이므로 작은 화면에서는 열이 압축되지 않고 다음 행으로 넘어갑니다.
fr 단위
fr은 “남은 공간의 한 분획”을 뜻합니다. 고정 크기 트랙을 뺀 뒤 남은 공간을 fr 단위 총합으로 나눕니다.
grid-template-columns: 200px 1fr 2fr;
1000px 컨테이너에서 첫 번째 열은 200px을 차지하고 나머지 800px이 1:2로 나뉘어 267px과 533px이 됩니다.
auto-fill vs. auto-fit
auto-fill: 아이템이 충분하지 않을 때 빈 자리 트랙을 만듭니다.auto-fit: 빈 트랙을 0으로 접어 나머지 아이템이 늘어나 행을 채웁니다.
반응형 대체는 카드 그리드에 맞는 auto-fit을 사용하므로 행이 항상 가득 차 보입니다.
다른 너비의 열
생성기는 동일한 열을 출력합니다. 크기를 섞으려면 결과를 수정하세요. grid-template-columns: 200px 1fr 2fr;는 고정 사이드바와 1:2 비율의 유연한 두 열을 만듭니다. 이름 있는 영역(grid-template-areas)이나 명시적 배치(grid-column: 1 / 3)는 생성된 컨테이너 위에 직접 추가하세요.
Grid vs. Flexbox
- Grid: 트랙으로 구성된 명시적 2D 레이아웃. 행과 열 구조를 가진 레이아웃(페이지 골격, 갤러리, 대시보드)에 적합합니다.
- Flexbox: 단일 축을 따른 1D 정렬. 아이템이 자연스럽게 흐르는 곳(내비게이션 바, 버튼 줄)에 적합합니다.
실제 레이아웃은 보통 둘을 조합합니다. 페이지 골격에는 Grid, 컴포넌트 내부에는 Flexbox입니다.
흔한 실수
- 자식에
min-width: 0을 빼먹기: 그리드 아이템은 기본적으로 콘텐츠의 최소 너비를 사용하므로fr열이 가장 긴 단어보다 작아질 수 없습니다. 자식에min-width: 0을 지정해 줄어들게 하세요. display: grid없이 중첩하기: 그리드의 자식은 직접 선언하지 않는 한 그리드가 아닙니다.
자주 묻는 질문
작은 화면에서 레이아웃을 보호합니다. 생성된 미디어 쿼리가 repeat(auto-fit, minmax(너비, 1fr))로 전환되어 각 열이 최소한 그 너비를 유지하고, 그리드는 열을 압축하는 대신 행을 추가합니다.
생성기는 동일한 열을 출력합니다. 결과의 grid-template-columns 줄을 수정해 크기를 섞으세요. 예: 넓은 중앙 열 1fr 2fr 1fr, 고정 사이드바 200px 1fr.
보통 아이템이 기본값 min-width: auto(콘텐츠 최소 너비와 동일)를 갖기 때문입니다. 그리드 아이템에 min-width: 0을 지정하면 셀 안으로 줄어들 수 있습니다.
행과 열 구조가 있는 레이아웃(페이지 레이아웃, 사진 갤러리, 대시보드)에는 Grid를 쓰세요. 아이템이 단일 축을 따라 흐르는 곳(내비게이션 바, 버튼 줄, 양식 필드 묶음)에는 Flexbox입니다.
관련 도구
ASCII 표 참조
NUL, LF, DEL 같은 제어 문자를 포함해 모든 문자에 대한 10진수, 16진수, 8진수, 2진수, HTML 숫자 문자 참조를 담은 0부터 127까지의 전체 ASCII 표.
키보드 단축키 참고표
macOS, Windows, Linux에서 VS Code, Chrome, GNU Readline을 쓰는 Bash의 문서화된 기본 단축키를 검색합니다.
HTML 문자 참조
HTML 엔티티의 검색 가능한 목록, 각 엔티티의 이름 및 숫자 코드, 그리고 특수 문자 및 기호에 대한 1클릭 복사 기능을 제공합니다.
보색 찾기
어떤 입력에 대해서도 보색을 찾습니다. HSL 반대 색, 분할 보색 쌍, 그리고 접근성 있는 조합 제안을 반환합니다.
랜덤 영어 글자 생성기
A-Z 영어 글자를 무작위로 생성합니다. 개수와 대문자, 소문자, 혼합 대소문자를 선택해 게임, 과제, 수업 활동에 활용하세요.
랜덤 색상 팔레트 생성기
2~15개의 색상으로 랜덤 팔레트를 만들고, 비비드, 파스텔, muted, dark 스타일을 선택한 뒤 HEX 코드나 CSS 변수를 복사하세요.