개발(Web)/Web

[CSS] Grid Container 정렬하기

shinyelee 2022. 1. 20. 15:51

Making Layouts - CSS Grid

Grid Container 정렬하기

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">header</div>
      <div class="content">content</div>
      <div class="nav">nav</div>
      <div class="footer">footer</div>
    </div>
  </body>
</html>

004.css

.grid {
  background-color: black;
  color: white;
  display: grid;
  gap: 5px;
  height: 50vh;
  grid-template-columns: repeat(4, 100px);
  grid-template-rows: repeat(4, 100px);
}

.header {
  background-color: springgreen;
}

.content {
  background-color: deepskyblue;
}

.nav {
  background-color: mediumpurple;
}

.footer {
  background-color: orange;
}

가보자고.


justify-content

justify-content: start;는 grid를 문서의 시작점(main axis 기준)에 붙인다. 참고로 stretch로 지정해도 start와 똑같은 모습인데,
column의 width가 100px로 고정돼 있기 때문이다.
grid-template-columns: repeat(4, 1fr);나 grid-template-columns: repeat(4, auto);로 바꿔주면 stretch가 먹힌다.
justify-content: center;는 grid를 문서의 가운데(main axis 기준)에 배치한다.
justify-content: end;는 grid를 문서의 끝점(main axis 기준)에 붙인다.
justify-content: space-around;는 grid 내 column 앞뒤로 좌우 간격을 준다(첫 column과 끝 column이 border에 붙지 않음).
justify-content: space-between;은 grid 내 column 사이마다 좌우 간격을 준다(첫 column과 끝 column이 border에 붙는다).
justify-content: space-evenly;는 border 포함 grid 내 column 사이에 동일한 간격을 준다(Internet Explorer에서는 안 먹히는 게 단점).


align-content

justify-content가 가로정렬이라면 align-content는 세로정렬이다. 지금은 grid의 높이가 낮아 정렬할 공간이 부족하다.
height도 바꾸고
나머지 셀도 눈에 보이게 만들었다.
고.
align-content: stretch;를 적용하려면 높이가 고정값이면 안 된다.
fr이나 auto 등 상대값으로 바꿔주면
align-content: stretch;가 적용된다.
원복 후 다음 속성으로 넘어가자.
align-content: start;는 grid를 부모의 시작점(cross axis 기준)에 붙인다.
align-content: center;는 grid를 부모의 가운데(cross axis 기준)에 배치한다.
align-content: end;는 grid를 부모의 끝점(cross axis 기준)에 붙인다.
align-content: space-around; 적용. justify-content에서 space-around가 뭔지 알았으니 설명 생략.
align-content: space-between;
align-content: space-evenly;


place-content

align-content와 justify-content는 place-content로 축약할 수 있다.
place-content: align-content속성 justify-content 속성;
똑같은 속성을 반복하면 한 번만 써도 적용된다.
place-content: end end;는 place-content: end;와 같다.


참고

 

justify-content - CSS: Cascading Style Sheets | MDN

The CSS justify-content property defines how the browser distributes space between and around content items along the main-axis of a flex container, and the inline axis of a grid container.

developer.mozilla.org

 

align-content - CSS: Cascading Style Sheets | MDN

The CSS align-content property sets the distribution of space between and around content items along a flexbox's cross-axis or a grid's block axis.

developer.mozilla.org

 

place-content - CSS: Cascading Style Sheets | MDN

The place-content CSS shorthand property allows you to align content along both the block and inline directions at once (i.e. the align-content and justify-content properties) in a relevant layout system such as Grid or Flexbox.

developer.mozilla.org

반응형

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

[CSS] Grid 자동정렬  (0) 2022.01.22
[CSS] Grid Item 정렬하기  (0) 2022.01.21
[CSS] Grid Items 정렬하기  (0) 2022.01.19
[CSS] Grid Template  (0) 2022.01.18
[CSS] Grid Item  (0) 2022.01.17