개발(Web)/Web

[CSS] Grid Item

shinyelee 2022. 1. 17. 13:54

Making Layouts - CSS Grid

Child Elements (Items)

grid container에 포함된 grid items.


축약형(grid-column, grid-row)

 

Grid Layout Module

Grid Layout Grid Columns Grid Rows Grid Gaps grid-column-gap 각 column의 간격(가로 여백) grid-row-gap 각 row의 간격(세로 여백) grid-gap Grid Lines grid-column-start 특정 영역의 시작점이 되는..

shinye0213.tistory.com

이 grid 작성에 사용한 코드를
더 짧게 만들어 보자.

004.html

<!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" />
    <link rel="stylesheet" href="004.css" />
    <title>Grid</title>
  </head>
  <body>
    <div class="grid">
      <div class="header"></div>
      <div class="content"></div>
      <div class="nav"></div>
      <div class="footer"></div>
    </div>
  </body>
</html>

grid-column

grid-column-start: 1; grid-column-end: 5;는
grid-column: 1 / 5;와 같다.
grid-column: 시작점 / 끝점;
참고로 grid line은 보통 왼쪽에서 1, 2, 3 순으로 세지만
오른쪽에서부터 -1, -2, -3 순으로 세도 된다.
따라서 이렇게 표기해도 된다.


grid-row

grid-row-start: 2; grid-row-end: 4;는
grid-row-start: 2; grid-row-end: -2;나
grid-row: 2 / -2; 또는 grid-row: 2 / 4;로 표현한다.

004.css

.grid {
  display: grid;
  grid-template-columns: repeat(4, 100px);
  grid-template-rows: repeat(4, 100px);
  gap: 10px;
}

.header {
  background-color: springgreen;
  grid-column: 1 / 5;
}

.content {
  background-color: deepskyblue;
  grid-column: 1 / 4;
  grid-row: 2 / 4;
}

.nav {
  background-color: mediumpurple;
  grid-row: 2 / 4;
}

.footer {
  background-color: orange;
  grid-column: 1 / 5;
}

또 다른 방법(span)

span을 이용하면
1칸 차지 = span 1
이기 때문에 이렇게 표현할 수도 있다!

004.css

.grid {
  display: grid;
  grid-template-columns: repeat(4, 100px);
  grid-template-rows: repeat(4, 100px);
  gap: 10px;
}

.header {
  background-color: springgreen;
  grid-column: span 4;
}

.content {
  background-color: deepskyblue;
  grid-column: span 3;
  grid-row: span 2;
}

.nav {
  background-color: mediumpurple;
  grid-row: span 2;
}

.footer {
  background-color: orange;
  grid-column: span 4;
}

grid-area

grid-column과 grid-row를 합치면 grid-area가 된다.

grid-area: 시작row / 시작column / 끝row / 끝column;
또는 시작row / 시작column / span row값 / span column값;
취향껏 쓰면 된다.

grid-template-areas

각 div의 grid-area 속성마다 이름을 지저한 후
이름을 이용해 grid-template-areas에서 격자 한 칸 단위로 배열할 수 있다.
반드시 grid-area를 써야 한다. id, class는 grid-template-areas와 무관하다.

004.css

.grid {
  display: grid;
  grid-template-columns: repeat(4, 100px);
  grid-template-rows: repeat(4, 100px);
  gap: 10px;
  grid-template-areas:
    "header header header header"
    "content content content nav"
    "content content content nav"
    "footer footer footer footer";
}

.header {
  background-color: springgreen;
  grid-area: header;
}

.content {
  background-color: deepskyblue;
  grid-area: content;
}

.nav {
  background-color: mediumpurple;
  grid-area: nav;
}

.footer {
  background-color: orange;
  grid-area: footer;
}

참고

 

CSS Grid Item

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

반응형

'개발(Web) > Web' 카테고리의 다른 글

[CSS] Grid Items 정렬하기  (0) 2022.01.19
[CSS] Grid Template  (0) 2022.01.18
[CSS] Grid Container  (0) 2022.01.16
[CSS] Grid Layout Module  (0) 2022.01.15
[CSS] Flex Box - Flex Item  (0) 2022.01.14