article thumbnail image
Published 2022. 7. 14. 17:10

๐Ÿ“š Flex

Flex๋Š” ๋ ˆ์ด์•„์›ƒ ๋ฐฐ์น˜๋ฅผ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ๊ธฐ๋Šฅ์ด๋‹ค.

๋•Œ๋ฌธ์— float๋‚˜ inline-block๋ณด๋‹ค ๋” ํŽธ๋ฆฌํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ ์†์„ฑ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ ˆ์ด์•„์›ƒ ๋ฐฐ์น˜์— ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ๋“ค์€ ๋Œ€๋ถ€๋ถ„ ์ปจํ…Œ์ด๋„ˆ์— ์ ์šฉํ•˜๊ณ , ์•„์ดํ…œ๋“ค์€ ์ ์šฉ๋œ ์†์„ฑ์— ๋”ฐ๋ผ ๋ฐฐ์น˜๋œ๋‹ค.

๋”ฐ๋ผ์„œ flex๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ container์™€ item ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

<div class="container">
  <div class="item">flex</div>
  <div class="item">box</div>
  <div class="item">!!!</div>
</div>

์—ฌ๊ธฐ์„œ container๋Š” Flex container, item์€ Flex item์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

Flex ์†์„ฑ์€ ์ปจํ…Œ์ด๋„ˆ์— ์ ์šฉํ•˜๋Š” ์†์„ฑ๊ณผ ์•„์ดํ…œ์— ์ ์šฉํ•˜๋Š” ์†์„ฑ, ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๐Ÿ“Œ ์ปจํ…Œ์ด๋„ˆ์— ์ ์šฉํ•˜๋Š” ์†์„ฑ

๐Ÿ’œ display: flex;

flex๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  display๋ฅผ flex๋กœ ์ง€์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

.container {
  display: flex;
}

display๋ฅผ flex๋กœ ์ง€์ •ํ•˜๋ฉด ์•„์ดํ…œ๋“ค์€ ๊ฐ€๋กœ๋กœ ๋ฐฐ์น˜๋œ๋‹ค.

์ด๋•Œ width๋Š” ์ž๊ธฐ ์ž์‹ ์˜ width๋งŒํผ, height์€ ์ปจํ…Œ์ด๋„ˆ์˜ ๋†’์ด๋งŒํผ ์ฐจ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค.

 

 

 

 

 

๐Ÿ’œ flex-direction

์•„์ดํ…œ๋“ค์„ ๋ฐฐ์น˜ํ•  ๋•Œ ๊ธฐ์ค€์ด ๋˜๋Š” ์ถ•์˜ ๋ฐฉํ–ฅ์„ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

์ถ•์—๋Š” ๋ฉ”์ธ์ถ•(Main Axis)๊ณผ ๊ต์ฐจ์ถ•(Cross Axis)์ด ์กด์žฌํ•œ๋‹ค.

๋ฉ”์ธ์ถ•์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•„์ดํ…œ๋“ค์ด ์ •๋ ฌ๋˜๋Š” ๋ฐฉํ–ฅ์˜ ์ถ•์ด๊ณ , ๊ต์ฐจ์ถ•์€ ๋ฉ”์ธ์ถ•์— ์ˆ˜์ง์ธ ์ถ•์„ ๋งํ•œ๋‹ค.

 

 

 

.container {
	flex-direction: row; /* Default value */
	/* flex-direction: column; */
	/* flex-direction: row-reverse; */
	/* flex-direction: column-reverse; */
}

flex-direction์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” value๋Š” 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

 

row ์•„์ดํ…œ๋“ค์„ ํ–‰(๊ฐ€๋กœ) ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐฐ์น˜ํ•œ๋‹ค.
row-reverse ์•„์ดํ…œ๋“ค์„ row์˜ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐฐ์น˜ํ•œ๋‹ค.
column ์•„์ดํ…œ๋“ค์„ ์—ด(์„ธ๋กœ) ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐฐ์น˜ํ•œ๋‹ค.
column-reverse ์•„์ดํ…œ๋“ค์„ column์˜ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐฐ์น˜ํ•œ๋‹ค.

 

row์—์„œ์˜ ๋ฉ”์ธ์ถ•์€ ๊ฐ€๋กœ์ถ•, ๊ต์ฐจ์ถ•์€ ์„ธ๋กœ์ถ•์ด๊ณ 

column์—์„œ์˜ ๋ฉ”์ธ์ถ•์€ ์„ธ๋กœ์ถ•, ๊ต์ฐจ์ถ•์€ ๊ฐ€๋กœ์ถ•์ด๋‹ค.

 

 

 

 

 

๐Ÿ’œ flex-wrap

flex-item๋“ค์ด flex-container์— ํ•œ ์ค„๋กœ ์•ˆ ๋‹ด๊ธธ ๋•Œ ๊ฐ•์ œ๋กœ ํ•œ ์ค„์— ๋ฐฐ์น˜๋˜๊ฒŒ ํ•  ๊ฒƒ์ธ์ง€, ์ค„๋ฐ”๊ฟˆํ•  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

.container {
	flex-wrap: nowrap; /* Default value */
	/* flex-wrap: wrap; */
	/* flex-wrap: wrap-reverse; */
}

 

 

nowrap ์•„์ดํ…œ๋“ค์ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฒ—์–ด๋‚˜๋”๋ผ๋„ ํ•œ ์ค„์— ๋ฐฐ์น˜ํ•œ๋‹ค.
wrap ์•„์ดํ…œ๋“ค์ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ์ค„๋ฐ”๊ฟˆ๋œ๋‹ค.
wrap-reverse wrap๊ณผ ๋™์ผํ•˜์ง€๋งŒ ์—ญ์ˆœ์œผ๋กœ ๋ฐฐ์น˜๋œ๋‹ค. (์‹œ์ž‘์  ๋์  ๋ฐ˜๋Œ€๋กœ)

 

 

 

 

 

๐Ÿ’œ flex-flow

flex-direction๊ณผ flex-wrap ์†์„ฑ์˜ ๋‹จ์ถ• ์†์„ฑ์ด๋‹ค.

flex-direction๊ณผ flex-wrap์ˆœ์œผ๋กœ ์ž‘์„ฑํ•˜๊ณ , ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

.container {
	flex-flow: row wrap;
	/* ์•„๋ž˜์˜ ๋‘ ์ค„์„ ์ค„์—ฌ ์“ด ๊ฒƒ */
	/* flex-direction: row; */
	/* flex-wrap: wrap; */
}

 

 

 

 

 

๐Ÿ’œ justify-content

flex-item๋“ค์„ ๋ฉ”์ธ์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

์ •๋ ฌ์—๋Š” ๋ฉ”์ธ์ถ• ์ •๋ ฌ๊ณผ ๊ต์ฐจ์ถ• ์ •๋ ฌ ๋‘ ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ,

justify๋Š” ๋ฉ”์ธ์ถ• ์ •๋ ฌ, align์ธ ๊ต์ฐจ์ถ• ์ •๋ ฌ์„ ์˜๋ฏธํ•œ๋‹ค.  (์•ž์œผ๋กœ ์ž์ฃผ ์‚ฌ์šฉ๋˜๊ณ , grid์—์„œ๋„ ๋‚˜์˜ค๋Š” ๊ฐœ๋…์ด๋‹ˆ๊นŒ ์™ธ์›Œ๋‘๊ธฐ)

.container {
	justify-content: start; /* Default value */
	/* justify-content: end; */
	/* justify-content: center; */
	/* justify-content: space-between; */
	/* justify-content: space-around; */
	/* justify-content: space-evenly; */
}

 

 

 

start ์•„์ดํ…œ๋“ค์„ ์‹œ์ž‘์ ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.
end ์•„์ดํ…œ๋“ค์„ ๋์ ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.
center ์•„์ดํ…œ๋“ค์„ ์ค‘์•™์— ์ •๋ ฌํ•œ๋‹ค.
space-between ์•„์ดํ…œ๋“ค ์‚ฌ์ด์— ๊ท ์ผํ•œ ์—ฌ๋ฐฑ์„ ์ค€๋‹ค.
space-around ์•„์ดํ…œ๋“ค์˜ ๋‘˜๋ ˆ์— ๊ท ์ผํ•œ ์—ฌ๋ฐฑ์„ ์ค€๋‹ค.
space-evenly ์•„์ดํ…œ๋“ค ์‚ฌ์ด์™€ ์–‘ ๋์— ๊ท ์ผํ•œ ์—ฌ๋ฐฑ์„ ์ค€๋‹ค.

 

 

 

 

 

๐Ÿ’œ align-items

flex-item๋“ค์„ ๊ต์ฐจ์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

.container {
	align-items: stretch; /* Default value */
	/* align-items: start; */
	/* align-items: end; */
	/* align-items: center; */
	/* align-items: baseline; */
}

 

 

stretch ์•„์ดํ…œ๋“ค์„ ๊ต์ฐจ์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ๋๊นŒ์ง€ ๋Š˜๋ฆฐ๋‹ค.
start ์•„์ดํ…œ๋“ค์„ ์‹œ์ž‘์ ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.
end ์•„์ดํ…œ๋“ค์„ ๋์ ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.
center ์•„์ดํ…œ๋“ค์„ ์ค‘์•™์— ์ •๋ ฌํ•œ๋‹ค.
baseline ์•„์ดํ…œ๋“ค์„ ํ…์ŠคํŠธ ๋ฒ ์ด์Šค๋ผ์ธ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

 

 

 

 

 

 

๐Ÿ’œ align-content

flex-wrap: wrap;์œผ๋กœ ์ธํ•ด ์•„์ดํ…œ๋“ค์ด 2์ค„ ์ด์ƒ์ด ๋์„ ๋•Œ ์ˆ˜์ง์ถ• ๋ฐฉํ–ฅ์˜ ์ •๋ ฌ์„ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

.container {
	flex-wrap: wrap;
	align-content: stretch;
	/* align-content: flex-start; */
	/* align-content: flex-end; */
	/* align-content: center; */
	/* align-content: space-between; */
	/* align-content: space-around; */
	/* align-content: space-evenly; */
}

 

space๊ด€๋ จ value๋“ค์€ ๊ต์ฐจ์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ์•„์ดํ…œ๋“ค์ด justify-content์™€ ๋˜‘๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์—ฌ๋ฐฑ์„ ๋‚˜๋ˆ ๊ฐ–๋Š”๋‹ค.

 

 

 

 

 

๐Ÿ“Œ ์•„์ดํ…œ์— ์ ์šฉํ•˜๋Š” ์†์„ฑ

๐Ÿ’œ flex-basis

์•„์ดํ…œ์˜ ๊ธฐ๋ณธ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

flex-direction์ด row์ด๋ฉด width, column์ด๋ฉด height๋ฅผ ์กฐ์ ˆํ•œ๋‹ค.

.item {
	flex-basis: auto; /* Default value */
	/* flex-basis: 0; */
	/* flex-basis: 50%; */
	/* flex-basis: 200px; */
	/* flex-basis: 10rem; */
	/* flex-basis: content; */
}

 

์•„์ดํ…œ์˜ ํฌ๊ธฐ๊ฐ€ flex-basis๋กœ ์„ค์ •ํ•œ ๊ฐ’๋ณด๋‹ค ๋” ํด ๊ฒฝ์šฐ์—” ์›๋ž˜์˜ ํฌ๊ธฐ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

 

 

 

 

 

๐Ÿ’œ flex-grow

์•„์ดํ…œ๋“ค์ด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์—ฌ๋ฐฑ์„ ์–ผ๋งˆ๋งŒํผ ๋‚˜๋ˆ„์–ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

0๋ณด๋‹ค ํฐ ์ˆซ์ž๋ฅผ ํ• ๋‹นํ•˜๊ฒŒ ๋˜๋ฉด ์•„์ดํ…œ์ด flexibleํ•œ ๋ฐ•์Šค๋กœ ๋ณ€ํ•˜๊ฒŒ ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ์—ฌ๋ฐฑ์„ flex-grow์— ํ• ๋‹นํ•œ ์ˆซ์ž์˜ ๋น„์œจ๋งŒํผ ๊ฐ ์•„์ดํ…œ์ด ๋‚˜๋ˆ„์–ด ๊ฐ€์ง„๋‹ค.

๊ธฐ๋ณธ๊ฐ’์ด 0์ด๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํฌ๊ธฐ๊ฐ€ ๋Š˜์–ด๋‚˜์ง„ ์•Š๋Š”๋‹ค.

.item {
	flex-grow: 1;
	/* flex-grow: 0; */ /* Default value */
}

 

 

 

 

 

๐Ÿ’œ flex-shrink

์•„์ดํ…œ์˜ ํฌ๊ธฐ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ณด๋‹ค ํด ๋•Œ ์–ด๋–ป๊ฒŒ ์ถ•์†Œํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

0๋ณด๋‹ค ํฐ ์ˆซ์ž๋ฅผ ํ• ๋‹นํ•˜๋ฉด ์•„์ดํ…œ์ด flexibleํ•œ ๋ฐ•์Šค๋กœ ๋ณ€ํ•˜๊ฒŒ ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ํ• ๋‹นํ•œ ์ˆซ์ž์— ๋”ฐ๋ผ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์•„์ดํ…œ์˜ ํฌ๊ธฐ๊ฐ€ ์ถ•์†Œ๋œ๋‹ค.

flex-shrink์˜ ๊ธฐ๋ณธ๊ฐ’์€ 1์ด๊ธฐ ๋•Œ๋ฌธ์— ์•„์ดํ…œ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ ์ •ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด value๋ฅผ 0์œผ๋กœ ๋ฐ”๊พธ๋ฉด ๋œ๋‹ค.

.item {
	flex-shrink: 0;
    /* flex-shrink: 1; */ /* Default value */
}

 

 

 

 

 

๐Ÿ’œ flex

 flex-grow, flex-shrink, flex-basis์˜ ๋‹จ์ถ• ์†์„ฑ์ด๋‹ค.

.item {
	flex: 1;
	/* flex-grow: 1; flex-shrink: 1; flex-basis: 0%; */
	flex: 1 1 auto;
	/* flex-grow: 1; flex-shrink: 1; flex-basis: auto; */
	flex: 1 500px;
	/* flex-grow: 1; flex-shrink: 1; flex-basis: 500px; */
}

 

flex-basis๋ฅผ ์ƒ๋žตํ•ด์„œ ์“ฐ๋ฉด flex-basis์˜ ๊ฐ’์€ 0์ด ๋œ๋‹ค.

 

 

 

 

 

๐Ÿ’œ align-self

ํ˜„์žฌ ์•„์ดํ…œ์„ ๊ต์ฐจ์ถ• ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์ด๋‹ค.

.item {
	align-self: auto; /* Default value */
	/* align-self: stretch; */
	/* align-self: flex-start; */
	/* align-self: flex-end; */
	/* align-self: center; */
	/* align-self: baseline; */
}

 

auto๋Š” align-items ์„ค์ •์„ ์ƒ์†๋ฐ›๋Š”๋‹ค.

 

 

 

 

 

๐Ÿ’œ order

ํ˜„์žฌ ์•„์ดํ…œ์˜ ๋ฐฐ์น˜ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

์•„์ดํ…œ์˜ ์ •๋ ฌ ์ˆœ์„œ๋Š” order ๊ฐ’์˜ ์˜ค๋ฆ„์ฐจ์ˆœ์ด๊ณ , ๊ฐ™์€ ๊ฐ’์ผ ๊ฒฝ์šฐ ์†Œ์Šค ์ฝ”๋“œ์˜ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋œ๋‹ค.

 

์ฃผ์˜โ—

order๋Š” ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ๋‚˜ ํƒญ ์ˆœ์„œ์™€๋Š” ์ „ํ˜€ ์ƒ๊ด€ ์—†์ด ํ™”๋ฉด์— ๋ณด์ด๋Š” ์ˆœ์„œ์—๋งŒ ์˜ํ–ฅ์„ ์ค€๋‹ค.

๋”ฐ๋ผ์„œ ๋น„์‹œ๊ฐ์  ๋งค์ฒด์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š๋‹ค.

 

 

 

 

 

๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค!