Grid Layout

1. ๊ฐœ์š”

ํ˜„๋Œ€ ์›น ๋ ˆ์ด์•„์›ƒ์„ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋ฐ”๋กœ Grid์ด๋‹ค. ๋‚˜์˜ ๊ฒฝ์šฐ ์ „์ฒด์ ์ธ ํ‹€์„ Grid๋กœ ์žก๊ณ  ์ž‘์€ ๋ถ€๋ถ„ ๋ถ€๋ถ„์„ Flex๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ์‚ฌ์‹ค ์ง€๊ธˆ์€ ์ž‘์€ ๋ถ€๋ถ„๋„ Flex๋ณด๋‹ค๋Š” Grid๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด๋‹ค.

์ด์ „์— ์˜ฌ๋ฆฐ Flexbox Layout์€ ํ•œ ๋ฐฉํ–ฅ ๋ ˆ์ด์•„์›ƒ ์‹œ์Šคํ…œ์ด๋ผ๋ฉด Grid Layout์€ ๋‘ ๋ฐฉํ–ฅ ๋ ˆ์ด์•„์›ƒ ์‹œ์Šคํ…œ์ด๋‹ค. ๋”ฐ๋ผ์„œ Flex๋ณด๋‹ค ๋” ๋ณต์žก์ ์ธ ๋ ˆ์ด์•„์›ƒ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.


2. ์šฉ์–ด ์ •๋ฆฌ

grid layout
  • ๊ทธ๋ฆฌ๋“œ ์ปจํ…Œ์ด๋„ˆ(Grid Container): display: grid๋ฅผ ์ ์šฉํ•˜๋Š”, Grid์˜ ์ „์ฒด ์˜์—ญ์ด๋‹ค. Grid ์ปจํ…Œ์ด๋„ˆ ์•ˆ์˜ ์š”์†Œ๋“ค์ด Grid ๊ทœ์น™์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„ ์ •๋ ฌ๋œ๋‹ค.

  • ๊ทธ๋ฆฌ๋“œ ์•„์ดํ…œ(Grid Item): Grid ์ปจํ…Œ์ด๋„ˆ์˜ ์ž์‹ ์š”์†Œ๋“ค์ด๋‹ค. ๊ทธ๋ฆฌ๋“œ ์•„์ดํ…œ๋“ค์ด Grid ๊ทœ์น™์— ์˜ํ•ด ๋ฐฐ์น˜๋œ๋‹ค.

  • ๊ทธ๋ฆฌ๋“œ ํŠธ๋ž™(Grid Track): Grid์˜ ํ–‰(Row) ๋˜๋Š” ์—ด(Column)

  • ๊ทธ๋ฆฌ๋“œ ์…€(Grid Cell): Grid์˜ ํ•œ ์นธ์„ ๊ฐ€๋ฅดํ‚จ๋‹ค. <div>๊ฐ™์€ ์‹ค์ œ html ์š”์†Œ๋Š” Grid ์•„์ดํ…œ์ด๊ณ , ์ด๋Ÿฐ Grid ์•„์ดํ…œ ํ•˜๋‚˜๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” '๊ฐ€์ƒ์˜ ์นธ(ํ‹€)'์ด Grid ์…€์ด๋‹ค.

  • ๊ทธ๋ฆฌ๋“œ ๋ผ์ธ(Grid Line): Grid ์…€์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์„ ์ด๋‹ค.

  • ๊ทธ๋ฆฌ๋“œ ๋ฒˆํ˜ธ(Grid Number): Grid ๋ผ์ธ์˜ ๊ฐ ๋ฒˆํ˜ธ์ด๋‹ค.

  • ๊ทธ๋ฆฌ๋“œ ๊ฐญ(Grid Gap): Grid ์…€ ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ์ด๋‹ค.

  • ๊ทธ๋ฆฌ๋“œ ์˜์—ญ(Grid Area): Grid ๋ผ์ธ์œผ๋กœ ๋‘˜๋Ÿฌ์‹ธ์ธ ์‚ฌ๊ฐํ˜• ์˜์—ญ์œผ๋กœ, ๊ทธ๋ฆฌ๋“œ ์…€์˜ ์ง‘ํ•ฉ์ด๋‹ค.


3. Usage

Grid ๊ทœ์น™์„ ์ ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์š”์†Œ๋“ค์˜ ๋ถ€๋ชจ์— display: grid;๋ฅผ ์ ์šฉ์„ ํ•˜๋ฉด ๋œ๋‹ค.

.grid-container {
  display: grid;
}

display: inline-grid๋„ ์žˆ๋‹ค. ์•„์ดํ…œ์˜ ๋ฐฐ์น˜์™€ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ฐ€ ๋ณด๋‹ค๋Š”, ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ฃผ๋ณ€ ์š”์†Œ๋“ค๊ณผ ์–ด๋–ป๊ฒŒ ์–ด์šฐ๋Ÿฌ์งˆ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฐ’์ด๋‹ค. inline-grid๋Š” inline-block์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค.

.grid-container {
  display: inline-grid;
}

4. ๊ทธ๋ฆฌ๋“œ ํ˜•ํƒœ ์ •์˜

4-1. grid-template-columns

grid-template-columns ํ”„๋กœํผํ‹ฐ๋Š” grid columns์˜ ๋ฐฐ์น˜๋ฅผ ์ง€์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.

.grid-container {
  display: grid;
  grid-template-columns: 100px 200px 300px;
}

์œ„์˜ ์ฝ”๋“œ๋Š” grid-container๋กœ ๊ฐ์‹ธ์ ธ ์žˆ๋Š” ์ž์‹์š”์†Œ๋“ค์„ ๊ทธ๋ฆฌ๋“œ๋กœ ๋ฐฐ์น˜ํ•˜๊ณ  column์„ 3์—ด๋กœ ๋งŒ๋“ค๊ณ  ์ฒซ๋ฒˆ์งธ column ๋ถ€ํ„ฐ 100px, 200px, 300px๋งŒํผ์˜ ํฌ๊ธฐ๋กœ ๋งŒ๋“ค๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

๋˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ๋ฒ•์„ ๋ณด์ž.

.grid-container {
  display: grid;
  grid-template-columns: 1fr 2fr 2fr;
}

์œ„์˜ ์ฝ”๋“œ์—์„œ fr์€ fraction์œผ๋กœ ์ˆซ์ž ๋น„์œจ๋Œ€๋กœ ๊ทธ๋ฆฌ๋“œ ํŠธ๋ž™์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜๋ˆˆ๋‹ค. ์ฆ‰ 1fr 2fr 2fr์€ 1:2:2 ๋น„์œค์ผ 3๊ฐœ์˜ column์„ ๋งŒ๋“ค๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

.grid-container {
  display: grid;
  grid-template-columns: 100px 2fr 2fr;
}

์œ„์˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด px๊ณผ fr๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. %๋กœ๋„ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        text-align: center;
        padding: 20px 0px;
        background-color: aliceblue;
      }
      .grid-container1 {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        margin-bottom: 20px;
      }
      .grid-container2 {
        display: grid;
        grid-template-columns: 160px 200px 300px;
        margin-bottom: 20px;
      }
      .grid-container3 {
        display: grid;
        grid-template-columns: 200px 1fr 400px;
      }
    </style>
  </head>
  <body>
    <div>
      grid-template-columns: 1fr 1fr 1fr;
      <div class="grid-container1">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div>
      grid-template-columns: 160px 200px 300px;
      <div class="grid-container2">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div>
      grid-template-columns: 200px 1fr 400px;
      <div class="grid-container3">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
  </body>
</html>
grid-template-columns

4-2. grid-template-rows

grid-template-columns์€ ์—ด(column)์˜ ๋ฐฐ์น˜๋ผ๋ฉด grid-template-rows์€ ํ–‰(row)์˜ ๋ฐฐ์น˜์ด๋‹ค. ๊ทธ ์™ธ์˜ ๋‚ด์šฉ์€ ๊ฐ™๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        text-align: center;
        padding: 20px 0px;
        background-color: aliceblue;
      }
      .grid-container1 {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        grid-template-rows: 1fr 2fr;
        margin-bottom: 20px;
      }
      .grid-container2 {
        display: grid;
        grid-template-columns: 1fr 200px 300px;
        grid-template-rows: 160px 300px;
        margin-bottom: 20px;
      }
    </style>
  </head>
  <body>
    <div>
      grid-template-columns: 1fr 1fr 1fr; / grid-template-rows: 1fr 2fr;
      <div class="grid-container1">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div>
      grid-template-columns: 1fr 200px 300px; / grid-template-rows: 160px 300px;
      <div class="grid-container2">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
  </body>
</html>
grid-template-rows

4-3. repeat ํ•จ์ˆ˜

grid-template-columns, grid-template-rows์˜ ํ”„๋กœํผํ‹ฐ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” repeat๋Š” ๋ฐ˜๋ณต๋˜๋Š” ๊ฐ’์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

์‚ฌ์šฉ๋ฒ• grid-template-columns: repeat(๋ฐ˜๋ณตํšŸ์ˆ˜, ๋ฐ˜๋ณต๊ฐ’)

.grid-container {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
}
.grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
}

์œ„์˜ ๋‘ ์ฝ”๋“œ๋Š” ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.


4-4. minmax ํ•จ์ˆ˜

์ตœ์†Ÿ๊ฐ’๊ณผ ์ตœ๋Œ“๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

minmax(100px, auto)์˜ ์˜๋ฏธ๋Š” '์ตœ์†Œํ•œ 100px, ์ตœ๋Œ€๋Š” ์ž๋™์œผ๋กœ(auto) ๋Š˜์–ด๋‚˜๊ฒŒ ํ•œ๋‹ค.'์ด๋‹ค. ์•„๋ฌด๋ฆฌ ๋‚ด์šฉ์˜ ์–‘์ด ์ ๋”๋ผ๋„ ์ตœ์†Œํ•œ์˜ ๋†’์ด 100px์€ ํ™•๋ณด๋˜๊ณ , ๋‚ด์šฉ์ด ๋งŽ์•„ 100px์ด ๋„˜์–ด๊ฐ€๋ฉด ์•Œ์•„์„œ ๋Š˜์–ด๋‚˜๋„๋ก ํ•œ๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        text-align: center;
        padding: 20px 0px;
        background-color: aliceblue;
      }
      .grid-container1 {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: auto 1fr;
        margin-bottom: 20px;
      }
      .grid-container2 {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: repeat(2, minmax(100px, auto));
      }
    </style>
  </head>
  <body>
    <div>
      grid-template-columns: repeat(3, 1fr); grid-template-rows: auto 1fr;
      <div class="grid-container1">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">
          Lorem ipsum, dolor sit amet consectetur adipisicing elit. Eligendi
          eius illo nisi id ut vel, neque aliquam sapiente ullam tempore beatae
          sit aperiam consequuntur! Soluta amet culpa ab omnis quo!
        </div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div>
      grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2,
      minmax(100px, auto));
      <div class="grid-container2">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">
          Lorem ipsum, dolor sit amet consectetur adipisicing elit. Eligendi
          eius illo nisi id ut vel, neque aliquam sapiente ullam tempore beatae
          sit aperiam consequuntur! Soluta amet culpa ab omnis quo!
        </div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
  </body>
</html>
minmax

4-5. auto-fill, auto-fit

auto-fill๊ณผ auto-fit์€ column์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•˜์ง€ ์•Š๊ณ  ์„ค์ •๋œ ๋„ˆ๋น„๊ฐ€ ํ—ˆ์šฉํ•˜๋Š” ํ•œ ์ตœ๋Œ€ํ•œ ์…€์„ ์ฑ„์šด๋‹ค.

auto-fill๊ณผ auto-fit์˜ ์ฐจ์ด๋Š” ๋‚จ๋Š” ๊ณต๊ฐ„์„ ์ฑ„์šฐ์ง€ ์•Š๋А๋ƒ ์ฑ„์šฐ๋ƒ์ด๋‹ค. auto-fill์€ ๋‚จ์€ ๊ณต๊ฐ„์„ ์ฑ„์šฐ์ง€ ์•Š๊ณ  auto-fit์€ ๋‚จ์€ ๊ณต๊ฐ„์„ ์ฑ„์šด๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
        box-sizing: border-box;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        text-align: center;
        padding: 20px 0px;
        background-color: aliceblue;
      }
      .grid-container1 {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(25%, auto));
        margin-bottom: 20px;
      }
      .grid-container2 {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(25%, auto));
      }
    </style>
  </head>
  <body>
    <div>
      <div class="grid-container1">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div>
      <div class="grid-container2">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
  </body>
</html>
auto-fill, auto-fit

๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅด๋‹ค. ์œ„๋Š” fill์ด๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์ƒ๋œ ๊ฒฐ๊ณผ์ด์ง€๋งŒ ์•„๋ž˜๋Š” fit์œผ๋กœ ์ •ํ•ด๋„ 2๋ฒˆ์งธ ์—ด์ด ๋ชจ๋“  ๋„ˆ๋น„๋ฅผ ์ฐจ์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์™ค๊นŒ?


5. ๊ฐ„๊ฒฉ๋งŒ๋“ค๊ธฐ

๊ทธ๋ฆฌ๋“œ ์…€ ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ์„ ์„ค์ •์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” row-gap, column-gap ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ๊ฐ row(์—ด), column(ํ–‰)์˜ ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•˜๋ฉฐ gap ํ”„๋กœํผํ‹ฐ๋Š” row-gap๊ณผ column-gap๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” shorthand์ด๋‹ค.

์‚ฌ์šฉ๋ฒ• gap: row-gap, column-gap row-gap๊ณผ column-gap์ด ๊ฐ™์œผ๋ฉด ํ•˜๋‚˜๋งŒ ์ ์–ด๋„ ์—ด๊ณผ ํ–‰์— ๋ชจ๋‘ ์ ์šฉ์ด ๋œ๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
        box-sizing: border-box;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        text-align: center;
        padding: 10px 0px;
        background-color: aliceblue;
      }
      .grid-container1 {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        column-gap: 10px;
        row-gap: 10px;
        margin-bottom: 20px;
      }
      .grid-container2 {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        column-gap: 30px;
        row-gap: 5px;
        margin-bottom: 20px;
      }
      .grid-container3 {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 40px 10px;
        /* row-gap: 40px, column-gap: 10px*/
        margin-bottom: 20px;
      }
      .grid-container4 {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
        /* row-gap: 20px, column-gap: 20px*/
      }
    </style>
  </head>
  <body>
    <div>
      column-gap: 10px; row-gap: 10px;
      <div class="grid-container1">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div>
      column-gap: 30px; row-gap: 5px;
      <div class="grid-container2">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div>
      gap: 40px 10px;
      <div class="grid-container3">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div>
      gap: 20px;
      <div class="grid-container4">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
  </body>
</html>
gap

6. ๊ทธ๋ฆฌ๋“œ ํ˜•ํƒœ๋ฅผ ์ž๋™์œผ๋กœ ์ •์˜

grid-template-columns๋˜๋Š” grid-template-rows์˜ ํ†ต์ œ๋ฅผ ๋ฒ—์–ด๋‚œ ์œ„์น˜์— ์žˆ๋Š” ํŠธ๋ž™์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.

.grid-container {
  display: grid;
  grid-template-rows: repeat(3, minmax(320px, auto));
}

ํ•ด๋‹น css๋Š” 3๋ฒˆ์งธ ์—ด๊นŒ์ง€๋งŒ ํŠธ๋ ‰์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๊ณ  ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ 4๋ฒˆ์งธ ์ด์ƒ์˜ ์—ด์ด ์ƒ๊ธธ ๊ฒฝ์šฐ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š์•„ ๋‹ค๋ฅธ ํฌ๊ธฐ์˜ ํŠธ๋ ‰์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ 4๋ฒˆ์งธ ์ด์ƒ์˜ ์—ด์ด ๋ฐ”๋กœ ํ†ต์ œ๋ฅผ ๋ฒ—์–ด๋‚œ ์œ„์น˜์— ์žˆ๋Š” ํŠธ๋ ‰์ด๋‹ค. ์ฆ‰, ์šฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑํ•˜๊ณ ์ž ํ•˜๋Š” column๊ณผ row์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ชจ๋ฅผ ๋•Œ grid-template-columns๋˜๋Š” grid-template-rows ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ด๋•Œ ๋ชจ๋“  column๊ณผ row๋Š” ํ†ต์ œ๋ฅผ ๋ฒ—์–ด๋‚œ ์œ„์น˜์— ์žˆ๋Š” ํŠธ๋ ‰์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
        box-sizing: border-box;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        text-align: center;
        padding: 20px 0px;
        background-color: aliceblue;
      }
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: minmax(120px, auto);
      }
    </style>
  </head>
  <body>
    <div>
      <div class="grid-container">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">
          Lorem ipsum dolor sit amet consectetur, adipisicing elit. Omnis unde
          molestias sequi facere repudiandae architecto molestiae inventore
          ducimus rem, modi rerum, saepe reprehenderit tempore nemo minima ipsa
          laboriosam odit dolore?
        </div>
        <div class="box">6</div>
      </div>
    </div>
  </body>
</html>
grid-auto-rows

7. grid-column, grid-row

grid-column, grid-row ํ”„๋กœํผํ‹ฐ๋Š” Grid ์•„์ดํ…œ์— ์ ์šฉํ•˜๋Š” ํ”„๋กœํผํ‹ฐ๋กœ, ๊ฐ ์…€์˜ ์˜์—ญ์„ ์ง€์ •ํ•œ๋‹ค. Grid์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ๋‹ค.

grid number

์ด๋Ÿฌํ•œ Grid ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜์—ญ์„ ์ง€์ •ํ•œ๋‹ค.

์‚ฌ์šฉ๋ฒ• grid-column: <์‹œ์ž‘๋ฒˆํ˜ธ> / <๋๋ฒˆํ˜ธ> ์‚ฌ์šฉ๋ฒ• grid-row: <์‹œ์ž‘๋ฒˆํ˜ธ> / <๋๋ฒˆํ˜ธ>

๋˜๋Š” ๋ช‡ ๊ฐœ์˜ ์…€์„ ์ฐจ์ง€ํ•˜๊ฒŒ ํ•  ๊ฒƒ์ด์ง€๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์‚ฌ์šฉ๋ฒ• grid-column: <์‹œ์ž‘๋ฒˆํ˜ธ> / span<์ž์น˜ํ•  ์˜์—ญ ์…€ ์ˆ˜> ์‚ฌ์šฉ๋ฒ• grid-row: <์‹œ์ž‘๋ฒˆํ˜ธ> / span<์ž์น˜ํ•  ์˜์—ญ ์…€ ์ˆ˜>

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
        box-sizing: border-box;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        text-align: center;
        padding: 20px 0px;
        background-color: aliceblue;
      }
      .grid-container {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        grid-auto-rows: minmax(120px, auto);
      }
      .box:nth-child(1) {
        grid-column: 1 / 4;
        grid-row: 1 / 3;
      }
      .box:nth-child(4) {
        grid-column: 1 / span 2;
      }
      .box:nth-child(8) {
        grid-column: 1 / -1;
        grid-row: 4 / 6;
      }
    </style>
  </head>
  <body>
    <div>
      <div class="grid-container">
        <div class="box">grid-column: 1 / 4; grid-row: 1 / 3;</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">grid-column: 1 / span 2;</div>
        <div class="box">5</div>
        <div class="box">6</div>
        <div class="box">7</div>
        <div class="box">grid-column: 1 / -1; grid-row: 4 / 6;</div>
        <div class="box">9</div>
        <div class="box">10</div>
      </div>
    </div>
  </body>
</html>
grid-column, grid-row

8. ์„ธ๋กœ ๋ฐฉํ–ฅ ์ •๋ ฌ

8-1. align-items

align-items๋Š” ์ปจํ…Œ์ด๋„ˆ์— ์ ์šฉํ•˜๋Š” ํ”„๋กœํผํ‹ฐ๋กœ ์•„์ดํ…œ๋“ค์„ ์„ธ๋กœ(column์ถ•) ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
        box-sizing: border-box;
      }
      .parents {
        background-color: greenyellow;
        padding: 5px;
        margin-bottom: 20px;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        text-align: center;
        padding: 20px 0px;
        background-color: aliceblue;
      }
      .grid-container {
        height: 300px;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
      }
      .stretch {
        align-items: stretch;
      }
      .start {
        align-items: start;
      }
      .end {
        align-items: end;
      }
      .center {
        align-items: center;
      }
    </style>
  </head>
  <body>
    <div class="parents">
      align-items: stretch;
      <div class="grid-container stretch">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      align-items: start;
      <div class="grid-container start">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      align-items: end;
      <div class="grid-container end">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      align-items: center;
      <div class="grid-container center">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
  </body>
</html>
align-items
align-items

8-2. align-content

align-content๋Š” ์ปจํ…Œ์ด๋„ˆ์— ์ ์šฉํ•˜๋Š” ํ”„๋กœํผํ‹ฐ๋กœ Gird ์•„์ดํ…œ๋“ค์˜ ๋†’์ด๋ฅผ ๋ชจ๋‘ ํ•ฉํ•œ ๊ฐ’์ด Grid ์ปจํ…Œ์ด๋„ˆ์˜ ๋†’์ด๋ณด๋‹ค ์ž‘์„ ๋•Œ Grid ์•„์ดํ…œ๋“ค์„ ํ†ต์งธ๋กœ ์ •๋ ฌํ•œ๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
        box-sizing: border-box;
      }
      .parents {
        background-color: greenyellow;
        padding: 5px;
        margin-bottom: 20px;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        text-align: center;
        padding: 20px 0px;
        background-color: aliceblue;
      }
      .grid-container {
        height: 200px;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
      }
      .start {
        align-content: start;
      }
      .end {
        align-content: end;
      }
      .center {
        align-content: center;
      }
      .space-between {
        align-content: space-between;
      }
      .space-around {
        align-content: space-around;
      }
      .space-evenly {
        align-content: space-evenly;
      }
    </style>
  </head>
  <body>
    <div class="parents">
      align-content: start;
      <div class="grid-container start">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      align-content: end;
      <div class="grid-container end">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      align-content: center;
      <div class="grid-container center">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      align-content: space-between;
      <div class="grid-container space-between">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      align-content: space-around;
      <div class="grid-container space-around">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      align-content: space-evenly;
      <div class="grid-container space-evenly">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
  </body>
</html>
align-content
align-content

8-3. align-self

align-self๋Š” Grid ์•„์ดํ…œ์— ์ ์šฉํ•˜๋Š” ํ”„๋กœํผํ‹ฐ๋กœ ํ•ด๋‹น ์•„์ดํ…œ์„ ์„ธ๋กœ(column์ถ•) ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
        box-sizing: border-box;
      }
      .parents {
        background-color: greenyellow;
        padding: 5px;
        margin-bottom: 20px;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        text-align: center;
        padding: 20px 0px;
        background-color: aliceblue;
      }
      .grid-container {
        height: 300px;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: 1fr;
      }
      .box:nth-child(1) {
        align-self: stretch;
      }
      .box:nth-child(2) {
        align-self: start;
      }
      .box:nth-child(5) {
        align-self: center;
      }
      .box:nth-child(6) {
        align-self: end;
      }
    </style>
  </head>
  <body>
    <div class="parents">
      <div class="grid-container start">
        <div class="box">align-self: stretch;</div>
        <div class="box">align-self: start;</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">align-self: center;</div>
        <div class="box">align-self: end;</div>
      </div>
    </div>
  </body>
</html>
align-self

9. ๊ฐ€๋กœ ๋ฐฉํ–ฅ ์ •๋ ฌ

9-1. justify-items

justify-items ํ”„๋กœํผํ‹ฐ๋Š” Gird ์ปจํ…Œ์ด๋„ˆ์— ์ ์šฉํ•˜๋ฉฐ ์•„์ดํ…œ๋“ค์„ ๊ฐ€๋กœ(row์ถ•) ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
        box-sizing: border-box;
      }
      .parents {
        background-color: greenyellow;
        padding: 5px;
        margin-bottom: 20px;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        text-align: center;
        padding: 20px 40px;
        background-color: aliceblue;
      }
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
      }
      .start {
        justify-items: start;
      }
      .end {
        justify-items: end;
      }
      .center {
        justify-items: center;
      }
      .stretch {
        justify-items: stretch;
      }
    </style>
  </head>
  <body>
    <div class="parents">
      justify-items: start;
      <div class="grid-container start">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      justify-items: end;
      <div class="grid-container end">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      justify-items: center;
      <div class="grid-container center">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      justify-items: stretch;
      <div class="grid-container stretch">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
  </body>
</html>
justify-items

9-2. justify-content

justify-content ํ”„๋กœํผํ‹ฐ๋Š” Grid ์ปจํ…Œ์ด๋„ˆ์— ์ ์šฉํ•˜๋ฉฐ Grid ์•„์ดํ…œ๋“ค์˜ ๋„ˆ๋น„๋ฅผ ๋ชจ๋‘ ํ•ฉํ•œ ๊ฐ’์ด Grid ์ปจํ…Œ์ด๋„ˆ์˜ ๋„ˆ๋น„๋ณด๋‹ค ์ž‘์„ ๋•Œ Grid ์•„์ดํ…œ๋“ค์„ ํ†ต์งธ๋กœ ์ •๋ ฌํ•œ๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
        box-sizing: border-box;
      }
      .parents {
        background-color: greenyellow;
        padding: 5px;
        margin-bottom: 20px;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        width: 200px;
        text-align: center;
        padding: 20px 40px;
        background-color: aliceblue;
      }
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, auto);
      }
      .stretch {
        justify-content: stretch;
      }
      .start {
        justify-content: start;
      }
      .center {
        justify-content: center;
      }
      .end {
        justify-content: end;
      }
      .space-between {
        justify-content: space-between;
      }
      .space-around {
        justify-content: space-around;
      }
      .space-evenly {
        justify-content: space-evenly;
      }
    </style>
  </head>
  <body>
    <div class="parents">
      justify-content: stretch;
      <div class="grid-container stretch">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      justify-content: start;
      <div class="grid-container start">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      justify-content: center;
      <div class="grid-container center">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      justify-content: end;
      <div class="grid-container end">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      justify-content: space-between;
      <div class="grid-container space-between">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      justify-content: space-around;
      <div class="grid-container space-around">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
    <div class="parents">
      justify-content: space-evenly;
      <div class="grid-container space-evenly">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
      </div>
    </div>
  </body>
</html>
justify-content
justify-content

9-3. justify-self

justify-self๋Š” Grid ์•„์ดํ…œ์— ์ ์šฉํ•˜๋Š” ํ”„๋กœํผํ‹ฐ๋กœ ํ•ด๋‹น ์•„์ดํ…œ์„ ๊ฐ€๋กœ(row์ถ•) ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
        box-sizing: border-box;
      }
      .parents {
        background-color: greenyellow;
        padding: 5px;
        margin-bottom: 20px;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        text-align: center;
        padding: 20px 40px;
        background-color: aliceblue;
      }
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
      }
      .box:nth-child(1) {
        justify-self: stretch;
      }
      .box:nth-child(2) {
        justify-self: start;
      }
      .box:nth-child(5) {
        justify-self: center;
      }
      .box:nth-child(6) {
        justify-self: end;
      }
    </style>
  </head>
  <body>
    <div class="parents">
      <div class="grid-container">
        <div class="box">justify-self: stretch;</div>
        <div class="box">justify-self: start;</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">justify-self: center;</div>
        <div class="box">justify-self: end;</div>
      </div>
    </div>
  </body>
</html>
justify-self

10. ์ •๋ ฌ shorthand

10-1. place-content

align-content์™€ justify-content๋ฅผ ๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ๋Š” shorthand์ด๋‹ค.

์‚ฌ์šฉ๋ฒ• place-content: <align-content> <justify-content>

ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ์“ฐ๋ฉด ๋‘ ํ”„๋กœํผํ‹ฐ ๋ชจ๋‘์— ์ ์šฉ๋œ๋‹ค.


10-2. place-slef

align-slef์™€ justify-slef๋ฅผ ๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ๋Š” shorthand์ด๋‹ค.

์‚ฌ์šฉ๋ฒ• place-slef: <align-slef> <justify-slef>

ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ์“ฐ๋ฉด ๋‘ ํ”„๋กœํผํ‹ฐ ๋ชจ๋‘์— ์ ์šฉ๋œ๋‹ค.


11. order

๊ฐ Grid ์•„์ดํ…œ๋“ค์˜ ์‹œ๊ฐ์  ๋‚˜์—ด ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

์ˆซ์ž๊ฐ’์ด ๋“ค์–ด๊ฐ€๋ฉด, ์ž‘์€ ์ˆซ์ž์ผ ์ˆ˜๋ก ๋จผ์ € ๋ฐฐ์น˜๋œ๋‹ค. "์‹œ๊ฐ์ " ์ˆœ์„œ์ผ ๋ฟ HTML ์ž์ฒด์˜ ๊ตฌ์กฐ๋ฅผ ๋ฐ”๊พธ์ง„ ์•Š๋‹ค.


12. z-index

Z์ถ• ์ •๋ ฌ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํผํ‹ฐ์ด๋‹ค. ์ˆซ์ž๊ฐ€ ํด ์ˆ˜๋ก ์œ„๋กœ ์˜ฌ๋ผ๊ฐ„๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        font-size: 24px;
        box-sizing: border-box;
      }
      .parents {
        background-color: greenyellow;
        padding: 5px;
        margin-bottom: 20px;
      }
      .box {
        border: 2px solid black;
        border-radius: 10px;
        text-align: center;
        padding: 20px 40px;
        background-color: aliceblue;
      }
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
      }
      .box:nth-child(5) {
        z-index: 1;
        background-color: burlywood;
        opacity: 0.8;
        transform: scale(2);
      }
    </style>
  </head>
  <body>
    <div class="parents">
      <div class="grid-container">
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <div class="box">6</div>
        <div class="box">7</div>
        <div class="box">8</div>
        <div class="box">9</div>
      </div>
    </div>
  </body>
</html>
z-index

13. Conclusion

๋‚ด๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ React๋ฅผ ์‚ฌ๋ž‘ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด CSS์—์„œ๋Š” Grid๋ฅผ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ๋ž‘ํ•œ๋‹ค. ๊ทธ ๋งŒํผ ์‚ฌ์šฉํ•˜๋Š” ๋น„์ค‘์ด ๋งŽ๊ณ  ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ํ™•์‹คํžˆ Grid๋ฅผ ์ฒ˜์Œ ๊ณต๋ถ€ํ•  ๋• ํ•˜๋‚˜ํ•˜๋‚˜ ์ดํ•ดํ•˜๋ ค๊ณ  ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ๋Š”๋ฐ ์ง€๊ธˆ์€ Flex์™€ ํ•จ๊ป˜ ์„œ๋กœ ๋น„๊ตํ•˜๋ฉฐ ๊ณต๋ถ€ํ•˜๋‹ˆ ์‰ฝ๊ฒŒ ์ดํ•ด๊ฐ€ ๋˜์—ˆ๋‹ค. ๋‹ค๋งŒ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํผํ‹ฐ๊ฐ€ ์žˆ๋Š”๋ฐ ๋ฐ”๋กœ justify-content์™€ align-content์ด๋‹ค. ์ด ๋‘ ์†์„ฑ์€ Flex์—์„œ๋Š” ๋งŽ์ด ์‚ฌ์šฉํ–ˆ์ง€๋งŒ Grid์—์„œ๋Š” ํ•œ ๋ฒˆ๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋˜ ํ”„๋กœํผํ‹ฐ์ธ๊ฑฐ ๊ฐ™๋‹ค. ๊ทธ๋ž˜๋„ ์–ด๋–ค ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ์งš๊ณ  ๋„˜์–ด๊ฐ€์ž. ๊ทธ๋ฆฌ๊ณ  ์ฐ์ฐํ•œ๊ฒŒ.. auto-fill, auto-fit์ด ๋‚ด ์ƒ๊ฐ๋Œ€๋กœ, ์˜ˆ์ƒํ•œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์•„์„œ ์กฐ๊ธˆ์€ ์”์“ธํ•˜๋‹ค... ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•„๋ด์•ผ๊ฒ ๋‹ค.๐Ÿ˜ญ


์ฐธ๊ณ 

The CSS Grid Enchiridion ์ด๋ฒˆ์—์•ผ๋ง๋กœ CSS Grid๋ฅผ ์ตํ˜€๋ณด์ž Understanding CSS Grid: Grid Lines


๐Ÿ‘†

๐Ÿ“… 2022-07-25

Last updated