Study/HTML,CSS

[CSS_study] display : grid_5 place-items & place-content

갈푸라떼 2022. 5. 17. 03:35

* place Items & place Content

* items는 각각의 cell을 의미한다.

* content는 grid 전체를 의미한다.


* jusitfy(align)-items은 각각의 셀 하나하나에 어떤 걸 적용할지에 관한것 (셀안에서 항목이 이동)
* justify(align)-content는 grid 전체를 움직이게 된다.


* place-items : [수직] [수평]

  • justify-items 수평(가로) //  default=stretch 
  • align-items 수직(세로) // default=stretch
  • 이 둘을 다 포함한게 place-items : align-items/justify-content 순서

* place-items 예시 코드

.grid {
  display: grid;
  gap: 5px;
  height: 50vh;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(4, 1fr);
  place-items: stretch center;
}

.header {
  background-color: #2ecc71;
}

.content {
  background-color: #3498db;
}

.nav {
  background-color: #8e44ad;
}

.footer {
  background-color: #f39c12;
}

 


* place-content : [수직] [수평]

  • justify-content 전체 그리드의 수평 위치 // default=start
  • align-content 전체 그리드의 수직 위치 // default=start
  • 이 둘을 다 포함한게 place-content : align-content/justify-content 순서

* grid-template에서 높이를 fr로 설정하고 align-content를 stretch로 설정하면 쭉 늘어난다.

(참고) 컨테이너의 height가 그리드를 담을 만큼 충분해야한다.(높이 지정)

 

* place-content 예시 코드

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="style.css"/>
  </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 class="header">header</div>
      <div class="content">content</div>
      <div class="nav">nav</div>
      <div class="footer">footer</div>
      <div class="header">header</div>
      <div class="content">content</div>
      <div class="nav">nav</div>
      <div class="footer">footer</div>
      <div class="header">header</div>
      <div class="content">content</div>
      <div class="nav">nav</div>
      <div class="footer">footer</div>
    </div>
  </body>
</html>

 

.grid {
  background: grey;
  color: white;
  display: grid;
  gap: 5px;
  height: 250vh;
  grid-template-columns: repeat(4, 100px);
  grid-template-rows: repeat(4, 100px);
  place-content: end center;
}

.header {
  background-color: #2ecc71;
}
.content {
  background-color: #3498db;
}
.nav {
  background-color: #8e44ad;
}
.footer {
  background-color: #f39c12;
}