output7 2022. 1. 17. 16:47

Grid

  • ๊ฒฉ์ž๋ฅผ ๋งŒ๋“œ๋Š” ๋ ˆ์ด์•„์›ƒ์ž„

  • ๋ถ€๋ชจ<div>์— display : grid๋ฅผ ์ฃผ๋ฉด ์ž์‹ <div>๋“ค์€ ์ „๋ถ€ ๊ฒฉ์ž์ฒ˜๋Ÿผ ์ง„์—ด๋จ

  • grid-template-columns๋Š” ๊ฐ€๋กœ ๊ฒฉ์ž์˜ ๊ฐœ์ˆ˜์ž„

  • grid-template-rows๋Š” ์„ธ๋กœ ๊ฒฉ์ž์˜ ๊ฐœ์ˆ˜์ž„

  • fr: ๋ช‡๋ฐฐ๋งŒํผ ์ฐจ์ง€ํ• ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์ž„

  • grid-gap: ๊ทธ๋ฆฌ๋“œ ์‚ฌ์ด ๊ฐ„๊ฒฉ์„ ์คŒ

  • grid-template-rows์—์„œ fr๋‹จ์œ„๋ฅผ ์ค„ ๋•Œ๋Š” height๊ฐ’์„ ์„ค์ •ํ•ด์ค˜์•ผ ํ•จ

  • ํฐ ๋ ˆ์ด์•„์›ƒ์„ ์žก์„ ๋•Œ๋ณด๋‹ค ์ž์ž˜ํ•œ ๋ถ€๋ถ„์—์„œ ์—‘์…€๊ฐ™์€ ๊ฒฉ์ž๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์“ฐ๋ฉด ํšจ๊ณผ์ ์ž„
.grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-template-rows: 100px 100px 100px;
  grid-gap: 10px;
}

 

 

  Grid๋กœ ๋ ˆ์ด์•„์›ƒ ๋งŒ๋“œ๋Š” ๋ฒ• 1 

  • ์ง์ ‘ ์ž์‹์—๊ฒŒ ๋ช‡ ์นธ์„ ์ฐจ์ง€ํ• ์ง€๋ฅผ ์ •ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•

  • grid-column: ์„ธ๋กœ์ค„ ์ฐจ์ง€ํ•  ๊ฐœ์ˆ˜๋ฅผ ์ง€์ •ํ•ด์คŒ

  • grid-row: ๊ฐ€๋กœ์ค„ ์ฐจ์ง€ํ•  ๊ฐœ์ˆ˜๋ฅผ ์ง€์ •ํ•ด์คŒ
.grid-nav {
  grid-column : 1 / 4;
  grid-row : 2 / 4;
}

 

grid-column : 1 / 4
(์„ธ๋กœ์ค„ ๋งจ ์•ž 1๋ฒˆ์ค„๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ค„์ธ 4๋ฒˆ๊นŒ์ง€ ์ฐจ์ง€ํ•จ)
grid-row : 2 / 5
(๊ฐ€๋กœ ๋‘๋ฒˆ ์งธ ์ค„๋ถ€ํ„ฐ
๋งˆ์ง€๋ง‰ ์ค„ 5๋ฒˆ๊นŒ์ง€ ์ฐจ์ง€ํ•จ)
   
   
   

 

 

๋”๋ณด๊ธฐ

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" />
    <title>Document</title>
    <link rel="stylesheet" href="style.css" />
    <script src="./index.js" defer></script>
  </head>
  <body>
    <div class="grid-container">
      <div class="grid-nav"></div>
      <div class="grid-sidebar"></div>
      <div class="grid-main"></div>
    </div>
  </body>
</html>

 

CSS

 

.grid-container {
  display: grid;
  height: 600px;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;
}
.grid-nav {
  grid-column: 1 / 5;
  background-color: #7950f2;
}
.grid-sidebar {
  grid-row: 2 / 4;
  background-color: #212529;
}
.grid-main {
  grid-column: 2 / 5;
  grid-row: 2 / 4;
  background-color: #ffec99;
}

@media screen and (max-width:576px) {
  .grid-sidebar {
    grid-column: 1 / 5;
    grid-row: 2 / 3;
  }
  .grid-main {
    grid-column: 1 / 5;
    grid-row: 3 / 4;
  }
}

 

 

 

  Grid๋กœ ๋ ˆ์ด์•„์›ƒ ๋งŒ๋“œ๋Š” ๋ฒ• 2

  • ์ž์‹์— ์ด๋ฆ„์„ ์จ๋†“๊ณ  ๋ถ€๋ชจ๊ฐ€ ์ž์‹์„ ์ž์œ ๋กญ๊ฒŒ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Œ

  • grid-area๋ผ๋Š” ์†์„ฑ์„ ์ด์šฉํ•ด ์ž์‹์—๊ฒŒ ์ด๋ฆ„์„ ๋ถ™์—ฌ์คŒ

  • grid-template-areas: ์ž์‹์ค‘์— 'ํ—ค๋”'๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ์• ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ฒซ ํ–‰์— 4์นธ์„ ์ฐจ์ง€ํ•˜๊ฒŒ ํ•ด์คŒ

  • ๊ณต๊ฐ„์„ ๋น„์›Œ๋‘๋ ค๋ฉด .์„ ์ฐ์œผ๋ฉด ๋จ
.grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-template-rows: 100px 100px 100px;
  grid-gap: 10px;
  grid-template-areas: 
    "ํ—ค๋” ํ—ค๋” ํ—ค๋” ํ—ค๋”"
    "์‚ฌ์ด๋“œ ์‚ฌ์ด๋“œ . ."
    "์‚ฌ์ด๋“œ ์‚ฌ์ด๋“œ . ."
}

.grid-nav {
  grid-area: ํ—ค๋”;
}

.grid-sidebar {
  grid-area: ์‚ฌ์ด๋“œ;
}

 

 

 

๋”๋ณด๊ธฐ

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" />
    <title>Document</title>
    <link rel="stylesheet" href="style.css" />
    <script src="./index.js" defer></script>
  </head>
    <div class="grid-container2">
      <div class="any"><img src="https://placeimg.com/500/500/any" /></div>
      <div class="arch"><img src="https://placeimg.com/500/500/arch" /></div>
      <div class="nature"><img src="https://placeimg.com/500/500/nature" /></div>
      <div class="people1"><img src="https://placeimg.com/500/500/people" /></div>
      <div class="tech"><img src="https://placeimg.com/500/500/tech" /></div>
      <div class="people2"><img src="https://placeimg.com/600/600/people" /></div>
    </div>
  </body>
</html>

 

CSS

 

.grid-container2 {
  display: grid;
  height: 600px;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;
  grid-template-areas: 
    "any any arch"
    "any any nature"
    "people1 tech people2"
  ;
}
img {
  width: 100%;
  display: block;
}
.any {
  grid-area: any;
}
.arch {
  grid-area: arch;
}
.nature {
  grid-area: nature;
}
.people1 {
  grid-area: people1;
}
.tech {
  grid-area: tech;
}
.people2 {
  grid-area: people2;
}

@media screen and (max-width: 768px) {
  .grid-container2 {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    grid-template-areas: 
      "any"
      "arch"
      "nature"
      "people1"
      "tech"
      "people2"
    ;
  }
}

 

 

 

  Grid ๋ ˆ์ด์•„์›ƒ ํ˜ธํ™˜์„ฑ

  • IE์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  Edge ํฌํ•จ ๊ธฐํƒ€ ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์†์„ฑ์ด๋ผ ๋ณด๋ฉด ๋จ