Float vs Flex vs Grid - The-Next-Web-Research-Lab/the-next-web-research-lab.github.io GitHub Wiki


title: CSS ๋ ˆ์ด์•„์›ƒ ๋น„๊ต: Float vs Flex vs Grid

CSS ๋ ˆ์ด์•„์›ƒ ๋น„๊ต: Float vs Flex vs Grid

๋ ˆ์ด์•„์›ƒ์„ ์ฝ”๋”ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. Float, Flex, Grid ์ˆœ์„œ๋กœ ๋ ˆ์ด์•„์›ƒ์„ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ฐœ์ „๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ์ˆ ๋“ค์˜ ์ฐจ์ด์™€ ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋งŒ๋“ค์–ด์ง„ Grid๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์žฅ์ ์ด ์žˆ๋Š”์ง€ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ ๊ตฌํ˜„

6 Grid๋ฅผ 1:3:2๋กœ ๋‚˜๋ˆ„๊ณ  ๊ฐ๊ฐ ๊ฐ™์€ ์—ฌ๋ฐฑ์„ ๊ฐ€์งˆ ๋•Œ ์ฝ”๋“œ๋ฅผ ๋น„๊ตํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2019-04-19 แ„‹แ…ฉแ„’แ…ฎ 6 45 16

Float

Float๋กœ ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” ๊ฐ€๋กœ ์‚ฌ์ด์ฆˆ๋ฅผ ์ง์ ‘ ๊ณ„์‚ฐํ•ด์„œ ์ž‘์„ฑํ•ด์•ผ ๋๊ณ , overflow: hidden๊ณผ ๊ฐ™์€ ํŠน๋ณ„ํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋”ฉ์„ ํ•ด์•ผ ๋์Šต๋‹ˆ๋‹ค.

<div class="box">
  <div class="item">1/6</div>
  <div class="item">3/6</div>
  <div class="item">2/6</div>
</div>
.box {overflow: hidden}
.item {float: left}
.item:nth-of-type(1) {
  width: calc((100% - 20px) * 1 / 6)
}
.item:nth-of-type(2) {
  width: calc((100% - 20px) * 3 / 6);
  margin: 0 10px
}
.item:nth-of-type(3) {
  width: calc((100% - 20px) * 2 / 6)
}

Flex

Flex๊ฐ€ ๋„์ž…์ด ๋˜๋ฉด์„œ ์ข€ ๋” ์ถ”์ƒ์ ์œผ๋กœ ๊ธฐ์ž…์ด ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž์‹ ์—˜๋ฆฌ๋จผํŠธ์— 1:3:2 ๋น„์œจ์„ ๊ธฐ์ž…ํ•˜๋ฉด ๋ ˆ์ด์•„์›ƒ์„ ์ง€์ • ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

<div class="box">
  <div class="item">flex(1)</div>
  <div class="item">flex(3)</div>
  <div class="item">flex(2)</div>
</div>
.box {display: flex;}
.item:nth-of-type(1) {flex: 1}
.item:nth-of-type(2) {
  flex: 3;
  margin: 0 10px
}
.item:nth-of-type(3) {flex: 2}

Grid

Grid๋Š” Flex์ฒ˜๋Ÿผ ์ถ”์ƒ์ ์œผ๋กœ ๋น„์œจ์„ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•˜๊ณ , Flex์™€ ๋‹ค๋ฅด๊ฒŒ ๋ถ€๋ชจ ์ชฝ์—์„œ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ž์‹๋“ค์˜ ๋ ˆ์ด์•„์›ƒ์„ ๋ถ€๋ชจ์—์„œ ์กฐ์ž‘์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ ˆ์ด์•„์›ƒ ์ฝ”๋”ฉ์€ ํ•œ ๋ถ€๋ถ„์—์„œ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

<div class="box">
  <div>1fr</div>
  <div>3fr</div>
  <div>2fr</div>
</div>
.box {
  display: grid;
  grid-template-columns: 1fr 3fr 2fr;
  grid-gap: 10px
}
โš ๏ธ **GitHub.com Fallback** โš ๏ธ