CSS 그리드 레이아웃에서 항목들 사이의 간격(여백)을 조절하려면 grid-column-gap, grid-row-gap, 또는 grid-gap 속성을 사용합니다. 각 속성의 역할과 사용법을 예제와 함께 살펴보겠습니다.
1. grid-column-gap 속성 – 열 사이의 간격 설정
그리드 열(column) 사이의 간격을 지정합니다. 아래 예제 코드를 실행하면 두 개의 열 사이에 20px 간격이 적용되는 것을 확인할 수 있습니다.
예제
<!DOCTYPE html>
<html>
<head>
<style>
.container {
display: grid;
background-color: green;
grid-template-columns: auto auto;
padding: 20px;
grid-column-gap: 20px;
}
.ele {
background-color: orange;
border: 2px solid gray;
padding: 35px;
font-size: 30px;
text-align: center;
}
</style>
</head>
<body>
<h1>Game Board</h1>
<div class = "container">
<div class = "ele">1</div>
<div class = "ele">2</div>
<div class = "ele">3</div>
<div class = "ele">4</div>
<div class = "ele">5</div>
<div class = "ele">6</div>
</div>
</body>
</html>2. grid-row-gap 속성 – 행 사이의 간격 설정
그리드 행(row) 사이의 간격을 지정합니다. 아래 예제는 열 간격과 함께 행 간격도 20px로 설정한 코드입니다.
예제
<!DOCTYPE html>
<html>
<head>
<style>
.container {
display: grid;
background-color: green;
grid-template-columns: auto auto;
padding: 20px;
grid-column-gap: 20px;
grid-row-gap: 20px;
}
.ele {
background-color: orange;
border: 2px solid gray;
padding: 35px;
font-size: 30px;
text-align: center;
}
</style>
</head>
<body>
<h1>Game Board</h1>
<div class = "container">
<div class = "ele">1</div>
<div class = "ele">2</div>
<div class = "ele">3</div>
<div class = "ele">4</div>
<div class = "ele">5</div>
<div class = "ele">6</div>
</div>
</body>
</html>3. grid-gap 속성 – 행과 열 간격을 한 번에 설정
그리드 행과 열 사이의 간격을 동시에 지정할 수 있는 축약형(shorthand) 속성입니다. 값이 하나만 주어지면 행과 열에 같은 간격이 적용되고, 두 개의 값을 사용하면 첫 번째 값은 행 간격, 두 번째 값은 열 간격으로 설정됩니다.
예제
<!DOCTYPE html>
<html>
<head>
<style>
.container {
display: grid;
background-color: green;
grid-template-columns: auto auto;
padding: 20px;
grid-gap: 20px 20px;
}
.ele {
background-color: orange;
border: 2px solid gray;
padding: 35px;
font-size: 30px;
text-align: center;
}
</style>
</head>
<body>
<h1>Game Board</h1>
<div class = "container">
<div class = "ele">1</div>
<div class = "ele">2</div>
<div class = "ele">3</div>
<div class = "ele">4</div>
<div class = "ele">5</div>
<div class = "ele">6</div>
</div>
</body>
</html>참고: 최신 표준에서는 gap 속성 사용 권장
grid-column-gap, grid-row-gap, grid-gap은 초기 CSS 그리드 명세에서 도입된 이름입니다. 현재 CSS 박스 정렬(Box Alignment) 표준에서는 이들이 각각 column-gap, row-gap, gap으로 이름이 변경되었으며, 플렉스박스(flexbox) 등 다른 레이아웃에서도 동일하게 사용할 수 있습니다. 기존 접두사가 붙은 속성명도 대부분의 브라우저에서 여전히 호환되지만, 새 프로젝트에서는 gap 계열 속성을 사용하는 것이 좋습니다.