CSS grid-template-areas: 그리드 영역 정의 및 명명
CSS grid-template-areas
속성은 그리드 영역을 정의하는 동시에 각 영역에 이름을 할당합니다.
.grid {
grid-template-areas:
"a a a"
"b c c"
"b c c";
/* grid-template-areas:
"b b a"
"b b c"
"b b c"; */
/* grid-template-areas:
". a a"
"b c c"
"b . ."; */
/* grid-template-areas:
"c c c"
". b ."
"a a a"; */
}
body {
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
.grid {
width: 200px;
height: 200px;
background: #ddd;
color: #fff;
display: grid;
}
.a, .b, .c {
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
font-weight: 700;
}
.a {
background: #24c0a5;
grid-area: a;
}
.b {
background: #4011c5;
grid-area: b;
}
.c {
background: #b42809;
grid-area: c;
}
<div class="grid">
<div class="a">A</div>
<div class="b">B</div>
<div class="c">C</div>
</div>
grid-template-areas
가 정의하는 영역은 그리드 아이템에 자동으로 연결되지 않습니다. 그리드 배치 속성인 grid-row-start
, grid-row-end
, grid-column-start
, grid-column-end
, 또는 이 속성들의 단축 속성인 grid-row
, grid-column
, grid-area
를 사용해서 영역에 아이템을 배치하세요.
구문
/* 키워드 값 */
grid-template-areas: none;
/* <string> 값 */
grid-template-areas: "a b";
grid-template-areas: "a b b"
"a c d";
/* 전역 값 */
grid-template-areas: inherit;
grid-template-areas: initial;
grid-template-areas: revert;
grid-template-areas: revert-layer;
grid-template-areas: unset;
값
none
그리드 컨테이너가 이름 있는 영역을 하나도 정의하지 않습니다.
<string>
+지정한 문자열 각각이 그리드의 행을 정의하고, 문자열 내에서 공백으로 구분한 각각의 칸으로 그리드의 열을 정의합니다. 여러 행과 열에 같은 이름을 사용하면 해당 칸 모두를 차지하는 영역을 정의할 수 있습니다. 다만, 영역의 형태는 항상 직사각형이어야 합니다.
예제
레이아웃 구성하기
<article>
<header>헤더</header>
<nav>메뉴</nav>
<main>본문</main>
<footer>푸터</footer>
</article>
article {
color: #fff;
height: 300px;
display: grid;
grid-template-areas:
"header header"
"nav main"
"nav footer";
grid-template-columns: 150px 1fr;
grid-template-rows: 50px 1fr 50px;
}
header {
background: #24c0a5;
grid-area: header;
}
nav {
background: #4011c5;
grid-area: nav;
}
main {
background: #b42809;
grid-area: main;
}
footer {
background: #24c0a5;
grid-area: footer;
}
명세
브라우저 호환성
IE | Edge | Chrome | Safari | Firefox | iOS Safari | Android WebView | Android Chrome | Android Firefox | Samsung Internet | |
---|---|---|---|---|---|---|---|---|---|---|
grid-template-areas | ||||||||||
none |
browser-compat-data