
CSS Grid는 행(row)과 열(column)의 그리드를 사용하여 웹 페이지를 디자인할 수 있다. 그리드를 사용하면 복잡한 레이아웃도 쉽게 디자인할 수 있다.
1. Grid Layout 사용하기
<!DOCTYPE html>
<html lang="en">
<head>
<style>
.outer-box {
width: 500px;
height: 500px;
background-color: skyblue;
display: grid;
}
.inner-box {
width: 100px;
height: 100px;
background-color: red;
}
</style>
</head>
<body>
<div class="outer-box">
<div class="inner-box">1</div>
</div>
</body>
</html>

부모 클래스 outer-box 와 자식 클래스 inner-box 가 있다. outer-box 내에서 inner-box 를 배치해보자. 아우터 박스의 디스플레이를 grid 로 설정했다. grid 는 가로-세로 방향으로 배치가 가능한 레이아웃 시스템이다.
justify-content: ; align-items: ;
justify-content 는 수평 정렬, align-items 는 수직 정렬이다. 각 값은 start, center, end 를 넣을 수 있고 둘다 center를 입력하면 빨간 박스가 가운데로 온다

2. 비율 나누기
grid-template-columns: 1fr 1fr;

grid-template-columns 는 그림과 같이 행의 열을 나눈다. fr은 fraction 로 숫자의 배율대로 세로 칸을 나눈다. 1fr 1fr 은 그림과 같이 2개의 열로 나눈다는 의미이다.
원하는 2fr 1fr 1fr 같이 비율을 정해서 나눌 수도 있고, 100px 1fr 1fr 처럼 길이를 정할 수도 있다.
auto auto auto 로 정하면 자동으로 비율이 정해진다.
새로운 박스를 추가해보자.
<!DOCTYPE html>
<html lang="en">
<head>
<style>
.outer-box {
width: 500px;
height: 500px;
background-color: skyblue;
display: grid;
grid-template-columns: 1fr 1fr;
}
.inner-box1 {
width: 100px;
height: 100px;
background-color: red;
}
.inner-box2 {
width: 100px;
height: 100px;
background-color: blue;
}
.b1 {
display: grid;
}
.b2 {
display: grid;
}
</style>
</head>
<body>
<div class="outer-box">
<div class="b1">
<div class="inner-box1">1</div>
</div>
<div class="b2">
<div class="inner-box2">2</div>
</div>
</div>
</body>
</html>

파란색 박스를 추가했다. grid 로 outer-box 를 나눌 때, inner-box 를 각각 새로운 부모 박스를 만들어서 감쌌다. 그러면 부모 박스의 위치를 변경하면 inner-box 도 같이 움직인다.
.b1 { display: grid; justify-content: end; align-items: start; } .b2 { display: grid; justify-content: start; align-items: end; }

outer-box 가 반으로 나눠졌기 때문에 inner-box 를 끝으로 이동해도 나눠진 위치까지만 이동한다.
Share article