[TIL] 1108 LikeLion๐Ÿฆ FES 06

์ด์ถ˜๊ตฌยท2021๋…„ 11์›” 8์ผ
1

flex

flex-wrap: wrap-reverse

flex-wrap์˜ ๊ฐ’ ์ค‘ wrap์ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ์š”์†Œ๋ฅผ ๋ฐ‘์œผ๋กœ ๋ณด๋‚ธ๋‹ค๋ฉด,
wrap-reverse๋Š” ๋ฐ‘์—์„œ ์œ„๋กœ ๋ณด๋‚ธ๋‹ค.
flex-wrap: wrap

flex-wrap: wrap-reverse

flex-basis

์ž์‹์š”์†Œ์— ์‚ฌ์šฉ

  • flex item์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์ •ํ•œ๋‹ค. width, height์™€ ๋‹ค๋ฅธ ์ ์€ axis ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ width, height ๋‘˜ ์ค‘ ์ •ํ•˜๋Š” ๊ฐ’์ด ๋‹ฌ๋ผ์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. main axis๊ฐ€ row๋ผ๋ฉด width๋ฅผ ์ •ํ•˜๊ณ , main axis๊ฐ€ column๋ผ๋ฉด height๋ฅผ ์ •ํ•œ๋‹ค.
  • item์˜ ๋‚ด๋ถ€ ์ปจํ…์ธ ์— ๋”ฐ๋ผ ํฌ๊ธฐ๊ฐ€ ์œ ์—ฐํ•˜๊ฒŒ ๋ณ€ํ•œ๋‹ค.
  • ๊ธฐ๋ณธ๊ฐ’์€ auto์ด๋ฉฐ, auto ์ผ๋•Œ๋Š” width, height ๊ฐ’์ด ์ ์šฉ๋œ๋‹ค.
  • flex-basis ๊ฐ’์ด ์ ์šฉ๋˜์–ด ์žˆ๋‹ค๋ฉด width, height ๊ฐ’์€ ๋ฌด์‹œ๋œ๋‹ค.

flex-grow

์ž์‹์š”์†Œ์— ์‚ฌ์šฉ

  • flex-basis๋กœ ์ •ํ•œ ํฌ๊ธฐ๋ณด๋‹ค ๋” ์ปค์งˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ์†์„ฑ์œผ๋กœ, ํ• ๋‹น๋œ ๊ฐ’์— ๋”ฐ๋ผ ์ž์‹ ์„ ๊ฐ์‹ธ๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•˜๋„๋ก ํ•œ๋‹ค.

  • flex-grow: 1 -> ์ž์‹ ์š”์†Œ๋“ค์ด ๋ชจ๋‘ ๋™์ผํ•œ ํฌ๊ธฐ์˜ ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›๋Š”๋‹ค.
    flex-grow: 2 -> ํŠน์ •ํ•œ ํ•˜๋‚˜์˜ ์ž์‹์—๊ฒŒ๋งŒ ๋ถ€์—ฌํ•  ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์ž์‹์š”์†Œ์˜ ๋‘๋ฐฐ์˜ ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›๋Š”๋‹ค. ๋งŒ์•ฝ ์ž์‹์š”์†Œ๋“ค์˜ ์ปจํ…์ธ  ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ ธ์žˆ๋‹ค๋ฉด ๊ทธ ํฌ๊ธฐ์— ๋”ฐ๋ผ ํ• ๋‹น๋ฐ›๋Š” ๊ฐ’์ด ๋‹ฌ๋ผ์ง„๋‹ค.

flex-shrink

์ž์‹์š”์†Œ์— ์‚ฌ์šฉ

  • flex-grow์— ๋ฐ˜๋Œ€๋˜๋Š” ๊ฐœ๋…์œผ๋กœ flex-basis๋กœ ์ •ํ•œ ํฌ๊ธฐ๋ณด๋‹ค ๋” ์ค„์–ด๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ• ์ง€ ์ง€์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค. ํฌ๊ธฐ๋ฅผ ๊ณ ์ •ํ•˜๊ฑฐ๋‚˜ ์ค„์ด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
  • ๊ธฐ๋ณธ๊ฐ’์€ 1์ด๋ฉฐ 0์ผ ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ์˜ ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋„ ์š”์†Œ์˜ ํฌ๊ธฐ๋Š” ๊ณ ์ •๋œ๋‹ค. ์Œ์ˆ˜๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

์ถ•์•ฝํ˜•

grow, shrink, basis๋ฅผ flex๋ผ๋Š” ํ•˜๋‚˜์˜ ์†์„ฑ์— ์ถ•์•ฝํ•ด์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

/* flex: flex-grow, flex-shrink, flex-basis */
flex :1; /* flex-grow:1; flex-shrink:1; flex-basis:0; */
flex :1 1 300px; /* flex-grow:1; flex-shrink:1; flex-basis:300px; */

order

์ž์‹์š”์†Œ์— ์‚ฌ์šฉ

  • item์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋Š” ์†์„ฑ์ด๋‹ค.
  • html ๋ฌธ์„œ ๋‚ด์˜ ํƒœ๊ทธ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ์ง€๋Š” ์•Š๋Š”๋‹ค.
  • ๊ธฐ๋ณธ๊ฐ’์€ 0์ด๋ฉฐ, main axis ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ์Œ์ˆ˜ -> 0 -> ์–‘์ˆ˜ ์ˆœ์„œ๋กœ ์ •๋ ฌ๋œ๋‹ค.
  • order ๊ฐ’์œผ๋กœ 0์ด ์•„๋‹Œ ๊ฐ’์„ ๋ฐ›์€ ์š”์†Œ๋Š” ํ•ด๋‹น ์œ„์น˜๋กœ ์ด๋™๋˜๊ณ  ๊ด€๊ณ„์—†๋Š” ์š”์†Œ๋“ค์€ ์•ž์œผ๋กœ ๋‹น๊ฒจ์ง€๋Š” ๋ฐฉ์‹์ด๋‹ค.

๋‹ค์„ฏ๋ฒˆ์งธ ์š”์†Œ์— order: -2 ์ ์šฉ

์ฒซ๋ฒˆ์งธ ์š”์†Œ์— order: 2 ์ ์šฉ

align-self

๋ถ€๋ชจ์˜ align-items ์†์„ฑ์„ ๋ฎ์–ด์”Œ์šฐ๋ฉฐ item์—๊ฒŒ ๊ฐœ๋ณ„์ ์ธ align-items ์†์„ฑ์„ ๋ถ€์—ฌํ•œ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ align-items์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ stretch์ด๋‹ค.

์„ธ๋ฒˆ์งธ ์š”์†Œ์— align-self: flex-start ์ ์šฉ

๊ด€๋ จ ์‚ฌ์ดํŠธ

flex playground (๊ทธ๋ž˜ํ”ฝ์œผ๋กœ flex์˜ ์ดํ•ด๋ฅผ ์‰ฝ๊ฒŒ ๋„์™€์ค€๋‹ค)
flexbox๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” 10๊ฐ€์ง€ ๋ ˆ์ด์•„์›ƒ

Grid

1์ฐจ์› ๋ ˆ์ด์•„์›ƒ์ธ flex์™€ ๋‹ค๋ฅธ 2์ฐจ์›์˜ ๋ ˆ์ด์•„์›ƒ

๊ธฐ๋ณธ ์šฉ์–ด

  • ๊ทธ๋ฆฌ๋“œ ์ปจํ…Œ์ด๋„ˆ : ๊ทธ๋ฆฌ๋“œ์˜ ๊ฐ€์žฅ ๋ฐ”๊นฅ์˜์—ญ
  • ๊ทธ๋ฆฌ๋“œ ์•„์ดํ…œ : ๊ทธ๋ฆฌ๋“œ ์ปจํ…Œ์ด๋„ˆ์˜ ์ž์‹ ์š”์†Œ๋“ค
  • ๊ทธ๋ฆฌ๋“œ ํŠธ๋ž™ : ๊ทธ๋ฆฌ๋“œ์˜ ํ–‰(row) ๋˜๋Š” ์—ด(column)
  • ๊ทธ๋ฆฌ๋“œ ์…€ : ๊ทธ๋ฆฌ๋“œ์˜ ํ•œ ์นธ (๊ฐœ๋…์ ์ธ ์ •์˜)
  • ๊ทธ๋ฆฌ๋“œ ๋ผ์ธ : ๊ทธ๋ฆฌ๋“œ ์…€์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์„  (์…€์ด 3๊ฐœ๋ผ๋ฉด ๋ผ์ธ์€ 4๊ฐœ)
  • ๊ทธ๋ฆฌ๋“œ ๋„˜๋ฒ„ : ๊ทธ๋ฆฌ๋“œ ๋ผ์ธ์˜ ๊ฐ ๋ฒˆํ˜ธ
  • ๊ทธ๋ฆฌ๋“œ ๊ฐญ : ๊ทธ๋ฆฌ๋“œ ์…€ ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ
  • ๊ทธ๋ฆฌ๋“œ ์—์–ด๋ฆฌ์–ด : ๊ทธ๋ฆฌ๋“œ ์…€์˜ ์ง‘ํ•ฉ

template

  • grid-template-columns : ์—ด์˜ ๋„ˆ๋น„๋ฅผ ์„ค์ •ํ•œ๋‹ค.
  • grid-template-rows : ํ–‰์˜ ๋†’์ด๋ฅผ ์„ค์ •ํ•œ๋‹ค.
  • repeat( ๋ฐ˜๋ณต ์ˆ˜, ์…€์˜ ํฌ๊ธฐ ) : ํŠน์ • ํฌ๊ธฐ์˜ ์…€์„ ์ง€์ • ๊ฐฏ์ˆ˜๋งŒํผ ์ƒ์„ฑํ•œ๋‹ค.
  • fr : grid์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๋‹จ์œ„๋กœ fraction(๋ถ„์ˆ˜, ๋น„์œจ)์„ ์˜๋ฏธํ•œ๋‹ค.
    ๋„ˆ๋น„ 500px์˜ ์ปจํ…Œ์ด๋„ˆ์— ๊ฐ ์…€์˜ ์ปฌ๋Ÿผ์ด 2fr 3fr์ด๋ผ๋ฉด 1fr์€ 100px์„ ์˜๋ฏธํ•œ๋‹ค.
    1fr = 500px / ํ•˜๋‚˜์˜ ํ–‰(๋˜๋Š” ์—ด)์„ ์ด๋ฃจ๋Š” fr์˜ ์ดํ•ฉ
grid-template-columns: repeat(5, 100px); ๋„ˆ๋น„ 100px์˜ ์…€์„ 5๊ฐœ ์ƒ์„ฑ
grid-template-rows: repeat(5, 100px); ๋†’์ด 100px์˜ ์…€์„ 5๊ฐœ ์ƒ์„ฑ

gap

  • row-gap : ํ–‰์„ ์ด๋ฃจ๋Š” ์…€ ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ์„ ์„ค์ •ํ•œ๋‹ค.
  • column-gap : ์—ด์„ ์ด๋ฃจ๋Š” ์…€ ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ์„ ์„ค์ •ํ•œ๋‹ค.
  • grid-gap, gap : ์ถ•์•ฝํ˜•
gap: 20px 5px; /* row-gap column-gap */

๊ฐ ์…€์˜ ์˜์—ญ ์ง€์ •

  • grid-column-start : ์…€ ์˜์—ญ์ด ์‹œ์ž‘ํ•˜๋Š” ์—ด ๋ผ์ธ์˜ ๋„˜๋ฒ„
  • grid-column-end : ์…€ ์˜์—ญ์ด ๋๋‚˜๋Š” ์—ด ๋ผ์ธ์˜ ๋„˜๋ฒ„
  • grid-column : ์ถ•์•ฝํ˜•
.cell {
	grid-column-start: 1;
	grid-column-end: 3;
    	grid-column: 1/3 /* 1๋ฒˆ ๋ผ์ธ๋ถ€ํ„ฐ 3๋ฒˆ ๋ผ์ธ */
	grid-column: 1 / span 2 /* 1๋ฒˆ ๋ผ์ธ๋ถ€ํ„ฐ 2์นธ */ 	 
}
  • grid-row-start : ์…€์ด ์‹œ์ž‘ํ•˜๋Š” ํ–‰ ๋ผ์ธ์˜ ๋„˜๋ฒ„
  • grid-row-end : ์…€ ์˜์—ญ์ด ๋๋‚˜๋Š” ํ–‰ ๋ผ์ธ์˜ ๋„˜๋ฒ„
  • grid-row : ์ถ•์•ฝํ˜•
.cell {
	grid-row-start: 1;
	grid-row-end: 3;
    	grid-row: 1/3 /* 1๋ฒˆ ๋ผ์ธ๋ถ€ํ„ฐ 3๋ฒˆ ๋ผ์ธ */
	grid-row: 1 / span 2 /* 1๋ฒˆ ๋ผ์ธ๋ถ€ํ„ฐ 2์นธ */
}

์‹ค์Šต

profile
ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

2๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2021๋…„ 11์›” 8์ผ

์˜ค๋Š˜๋ถ€ํ„ฐ ์ƒˆ๋กœ์›Œ์ ธ์š”,,,ใ…‹ใ…‹ใ…‹:)))

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ
comment-user-thumbnail
2021๋…„ 11์›” 9์ผ

๐Ÿ‘๐Ÿ‘๐Ÿ‘๐Ÿ‘

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ