grid는 container(부모요소)와 item(자식요소)으로 구성된다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Grid layout</title>
<link rel="stylesheet" href="./style.css" />
</head>
<body>
<div class="container">
<div class="item">A</div>
<div class="item">B</div>
<div class="item">C</div>
<div class="item">D</div>
<div class="item">E</div>
<div class="item">F</div>
</div>
</body>
</html>
container에 display:grid;를 설정하는 것으로 시작
.container {
display: grid;
/* gird | inline-grid */
}
하지만 grid를 추가해도 아무런 변화가 없습니다.
inline-grid 같은 경우 inline-block과 같이 내용에 따라 공간이 차지한다.
.container {
display: grid;
grid-template-columns: 1fr 1fr;
}
행과 열에 대한 정의가 들어가야 grid가 적용된다.
.container {
display: grid;
grid-template-columns: 150px 50% auto;
/* 속성값이 150px, 50%, auto 일 경우 3열이 만들어지고
1열의 너비는 150px, 2열의 너비는 50%, 3열의 너비는 나머지공간 */
}
.container {
display: grid;
grid-template-columns: 1fr 2fr 3fr;
/* 속성값이 1fr 2fr 3fr 이면 1:2:3의 비율로 3열이 만들어진다. */
}
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 50px 100px;
}
👩💻 참고) 행의 개수가 지정되지 않은 가변적인 상황이라면 grid-auto-rows를 사용
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
/* 1fr을 3번 반복 = 1fr 1fr 1fr */
.container {
display: grid;
grid-template-columns: repeat(3, 1fr 2fr);
}
/* 1fr 2fr 을 3번 반복 = 1fr 2fr 1fr 2fr 1fr 2fr */
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 1fr 1fr 1fr;
grid-column-gap: 30px;
}
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 1fr 1fr 1fr;
grid-row-gap: 30px;
}
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 1fr 1fr 1fr;
grid-gap: 30px;
/* grid-gap의 값이 하나이면 열과 행 모두 적용 된다. */
}
---더추가될예정---