0Pricing
CSS Academy · 강의

그리드 템플릿 영역

grid-template-areas로 그리드 영역에 이름을 지정해 읽기 쉽고 의미 있는 레이아웃을 만듭니다.

그리드 템플릿 영역은(는) CoddyKit의 무료 CSS Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 CSS Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. CSS Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

이름이 지정된 그리드 영역

grid-template-areas를 사용하면 ASCII 아트로 그리드 영역의 이름을 지정할 수 있습니다. 레이아웃을 매우 읽기 쉽고 유지 관리하기 좋게 만들어 줍니다.

템플릿 영역 정의하기

따옴표로 묶인 각 문자열은 하나의 행을 나타냅니다. 같은 이름을 가진 셀들이 직사각형 영역을 이룹니다. 빈 셀에는 .을 사용합니다.

<div class="page" style="min-height:240px;">
  <header style="grid-area:header;background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Header</header>
  <aside style="grid-area:sidebar;background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Sidebar</aside>
  <main style="grid-area:main;background:#7ee78722;border:1px solid #34c759;padding:8px;">Main</main>
  <footer style="grid-area:footer;background:#ff6b6b22;border:1px solid #ff6b6b;padding:8px;">Footer</footer>
</div>

이름으로 항목 배치하기

grid-area 속성에 영역 이름을 따옴표 없이 지정하여 그리드 항목을 이름이 지정된 영역에 배치합니다:

<div style="display:grid;grid-template-columns:200px 1fr;grid-template-rows:auto 1fr auto;grid-template-areas:'header header' 'sidebar main' 'footer footer';min-height:220px;gap:4px;">
  <header style="background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Header</header>
  <div class="sidebar" style="background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Sidebar</div>
  <main style="background:#7ee78722;border:1px solid #34c759;padding:8px;">Main</main>
  <footer style="background:#ff6b6b22;border:1px solid #ff6b6b;padding:8px;">Footer</footer>
</div>

템플릿 영역 규칙

이름이 지정된 영역은 직사각형이어야 합니다. 각 셀은 하나의 영역에만 속할 수 있습니다. 하나의 영역 이름이 서로 연결되지 않은 셀에 나타나서는 안 됩니다. 그렇게 하면 유효하지 않습니다.

.을 사용한 빈 셀

grid-template-areas에서 하나 이상의 마침표를 사용하여 빈 셀을 표시합니다:

<div class="layout" style="display:grid;min-height:200px;">
  <div style="grid-area:logo;background:#4f8cff22;border:1px solid #4f8cff;">Logo</div>
  <div style="grid-area:nav;background:#ffb84d22;border:1px solid #ffb84d;">Nav</div>
  <div style="grid-area:main;background:#7ee78722;border:1px solid #34c759;">Main</div>
  <div style="grid-area:sidebar;background:#b57bff22;border:1px solid #b57bff;">Sidebar</div>
  <div style="grid-area:footer;background:#ff6b6b22;border:1px solid #ff6b6b;">Footer</div>
</div>

미디어 쿼리를 사용한 반응형 영역

미디어 쿼리에서 grid-template-areas를 다시 정의하여 레이아웃 구조를 완전히 바꿀 수 있습니다:

<p style="font-size:0.85em;color:#888;margin:0 0 8px;">Narrow (default) preview below. Widen your browser to ≥768px to see the media query apply the two-column layout live.</p>
<div class="page" style="min-height:200px;margin-bottom:16px;">
  <div style="grid-area:header;background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Header</div>
  <div style="grid-area:main;background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Main</div>
  <div style="grid-area:sidebar;background:#7ee78722;border:1px solid #34c759;padding:8px;">Sidebar</div>
  <div style="grid-area:footer;background:#ff6b6b22;border:1px solid #ff6b6b;padding:8px;">Footer</div>
</div>
<p style="font-size:0.85em;color:#888;margin:0 0 8px;">Preview of the ≥768px layout (static reference — not driven by the media query):</p>
<div style="display:grid;grid-template-columns:200px 1fr;grid-template-areas:'header header' 'sidebar main' 'footer footer';gap:4px;min-height:160px;">
  <div style="grid-area:header;background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Header</div>
  <div style="grid-area:sidebar;background:#7ee78722;border:1px solid #34c759;padding:8px;">Sidebar</div>
  <div style="grid-area:main;background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Main</div>
  <div style="grid-area:footer;background:#ff6b6b22;border:1px solid #ff6b6b;padding:8px;">Footer</div>
</div>

자동 생성되는 이름 있는 선

영역의 이름을 지정하면 CSS가 행과 열 모두에 대해 이름이 지정된 그리드 선인 area-start와 area-end를 자동으로 만듭니다.

<div style="display:grid;grid-template-columns:200px 1fr;grid-template-rows:auto 1fr;grid-template-areas:'aside main' 'aside main';gap:0;min-height:160px;">
  <div style="grid-area:aside;background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Aside</div>
  <div style="grid-area:main;background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Main content</div>
  <div class="overlay" style="grid-row:1/3;background:rgba(255,99,71,0.3);border:2px dashed tomato;padding:4px;">Overlay via named lines main-start / main-end</div>
</div>

영역과 선 번호 결합하기

이름이 지정된 영역과 명시적인 선 번호는 같은 그리드에서 함께 사용할 수 있습니다. 항목은 이름, 선 번호 또는 span으로 배치할 수 있습니다.

시각적 그리드 디자인 작업 흐름

일반적인 작업 흐름은 먼저 템플릿 영역으로 레이아웃을 스케치한 다음 열과 행의 크기를 정의하는 것입니다. 이렇게 하면 구조와 크기 지정을 분리할 수 있습니다.

<div class="dashboard" style="display:grid;">
  <div style="grid-area:header;background:#4f8cff22;border:1px solid #4f8cff;">Header</div>
  <div style="grid-area:nav;background:#ffb84d22;border:1px solid #ffb84d;">Nav</div>
  <div style="grid-area:main;background:#7ee78722;border:1px solid #34c759;">Main</div>
  <div style="grid-area:ads;background:#b57bff22;border:1px solid #b57bff;">Ads</div>
  <div style="grid-area:footer;background:#ff6b6b22;border:1px solid #ff6b6b;">Footer</div>
</div>

템플릿 영역과 접근성

그리드의 시각적 순서는 DOM 소스 순서와 다를 수 있습니다. 화면 낭독기는 시각적 배치가 아니라 DOM 순서를 따릅니다. 그리드 배치로 항목을 시각적으로 재배열하더라도 DOM 순서가 논리적으로 이해되도록 해야 합니다.

grid-template 단축 표기

grid-template-areas, grid-template-columns, grid-template-rows를 하나의 grid-template 선언으로 결합할 수 있습니다.

<div class="page" style="display:grid;min-height:200px;">
  <div style="grid-area:header;background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Header</div>
  <div style="grid-area:sidebar;background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Sidebar</div>
  <div style="grid-area:main;background:#7ee78722;border:1px solid #34c759;padding:8px;">Main</div>
  <div style="grid-area:footer;background:#ff6b6b22;border:1px solid #ff6b6b;padding:8px;">Footer</div>
</div>

빠른 확인

grid-template-areas에서 빈 셀을 표시하는 데 어떤 문자를 사용합니까?

요약

grid-template-areas는 ASCII 아트를 사용하여 레이아웃 영역의 이름을 지정합니다. 항목은 grid-area: name으로 배치합니다. 영역은 직사각형이어야 하며 빈 셀에는 .을 사용합니다. 미디어 쿼리에서 영역을 다시 정의하면 깔끔하고 읽기 쉬운 CSS로 완전히 반응하는 레이아웃을 만들 수 있습니다.

자주 묻는 질문

“그리드 템플릿 영역” 강의는 무료인가요?

네 — “그리드 템플릿 영역” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 CSS Academy 강의 전체를 잠금 해제할 수 있습니다. CSS Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“그리드 템플릿 영역”에서 뭘 배우나요?

grid-template-areas로 그리드 영역에 이름을 지정해 읽기 쉽고 의미 있는 레이아웃을 만듭니다. 브라우저에서 직접 실행하는 실습 코드로 CSS Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

CSS Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 CSS Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“그리드 템플릿 영역” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 CSS Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 CSS Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Display Grid와 템플릿 열·행
  2. fr 단위와 Repeat
  3. Gap과 그리드 배치
  4. 그리드 템플릿 영역
← CSS Academy(으)로 돌아가기