Css-Flex

2021. 8. 25. 15:56ใ†css

Css-Flex

 

Css๋ฐฐ์น˜์— ์žˆ์–ด์„œ ๊ฝƒ์ธ Flex๋ฅผ ๋‹ค๋ค„๋ณด์ž.

 

๋จผ์ €.

Flex๋ฅผ ์™œ ๋ฐฐ์šฐ๋Š”์ง€ ๋ถ€ํ„ฐ ์•Œ์•„๋ณด์ž.

 

1) ๊ฐ„๋‹จํ•˜๊ณ  ๋™์ ์ธ ๋ถ€๋ถ„์—์„œ๋„ ํšจ์œจ์ ์ด๋‹ค

2) ์ˆ˜ํ‰์ ์ธ ๋ถ€๋ถ„์—์„œ ์ •๋ ฌ์„ ํ•˜๊ณ ์‹ถ๋‹ค

 

1. Flex์˜ ๊ธฐ๋ณธ

Flex์˜ ๊ธฐ๋ณธ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

<div class="container">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
</div>

 

class๋ช…์ธ container์™€ item์€ ๊ด€๋ก€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋œป ๊ทธ๋Œ€๋กœ ์ƒ์ž์•ˆ์— ๋ฌผ๊ฑด๋“ค์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•˜๋‹ค. 

์šฐ๋ฆฌ๋Š” ๋ฌผ๊ฑด์„ ์„ธ๋กœ๋กœ ๋ฐฐ์น˜ํ•  ์ง€, ๊ฐ€๋กœ๋กœ ๋ฐฐ์น˜ํ•  ์ง€, ๋„์›Œ์„œ ๋ฐฐ์น˜ํ•  ์ง€ ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋“ค๋กœ ๋ฐฐ์น˜๋ฅผ ํ•  ๊ฒƒ์ด๋‹ค.

 

์ด ๋•Œ ํ•ญ์ƒ margin์ด๋‚˜ padding์„ ์คŒ์œผ๋กœ์จ ๊ฐ„๊ฒฉ์„ ์ฃผ๋Š” ๊ฒƒ์€ ์ƒ๋‹นํžˆ ๋น„ํšจ์œจ์ ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” "flex"๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

์ด์˜ ์†์„ฑ์€ ๋ถ€๋ชจ์š”์†Œ์ธ "container"์— ์ ์šฉํ•  ๊ฒƒ์ธ๊ฐ€? ์ž์‹์š”์†Œ์ธ "item"์— ์ ์šฉํ•  ๊ฒƒ์ธ๊ฐ€์— ๋”ฐ๋ผ ์š”์†Œ์˜ ๋ฐฐ์น˜๋ฅผ ์ž์œ ์ž์žฌ๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

2. Containerํด๋ž˜์Šค์˜ flex ์†์„ฑ

์•„๋ž˜ ์ฝ”๋“œ๋Š” containerํด๋ž˜์Šค์˜ style์ด๋‹ค.

 

.container {
	display : flex;
}

 

ํฐ ์ƒ์ž์— display :flex๋ฅผ ์ค€๋‹ค๋ฉด, item๋“ค์ด ๊ฐ€๋กœ๋กœ ์ •๋ ฌ์ด ๋œ๋‹ค.

์›๋ž˜ divํƒœ๊ทธ๋Š” block์š”์†Œ๋กœ ์„ธ๋กœ๋กœ ์—ด๊ฑฐ๊ฐ€ ๋˜๋Š”๊ฒŒ ์ •์ƒ์ด์ง€๋งŒ ์ด๋“ค์„ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” container์— flexํ•˜๋‚˜ ์คฌ๋‹ค๊ณ  ๊ฐ€๋กœ๋กœ ๋ฐฐ์น˜๊ฐ€ ๋˜์—ˆ๋‹ค. 

์—ฌ๊ธฐ์„œ ์งš๊ณ  ๋„˜์–ด๊ฐˆ ๊ฒƒ์€ ๊ฐ item์˜ width๋งŒํผ ๋ฐฐ์น˜๊ฐ€ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

 

display : inline-flex๋˜ํ•œ ๊ฐ„๋‹จํ•˜๋‹ค. flex์—์„œ inline-block์˜ ํ˜•ํƒœ๋ฅผ ๋„๊ณ  ์žˆ๋‹ค๊ณ  ๋ณด๋ฉด๋œ๋‹ค. 

์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ์กด์˜ flex๋Š” item์„ ๊ฐ์‹ธ๋„ ์—ฌ๋ฐฑ์ด ๋‚จ์„ ์ˆ˜ ์žˆ์ง€๋งŒ inline-flex๋Š” container๊ฐ€ item์— ๊ฑฐ์˜ ๊ฝ‰ ๋ถ™์–ด์„œ ๋งž์ถ˜๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ์ƒํ™ฉ์— ๋งž์ถฐ ์“ฐ๋ฉด ๋œ๋‹ค.

 

 

3. flex-direction

flex์—๋Š” ๋ฐฉํ–ฅ์ด ์กด์žฌํ•œ๋‹ค. 

row๋Š” ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ row-reverse๋Š” ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ์š”์†Œ๋ฅผ ๋ฐฐ์น˜ํ•œ๋‹ค.

๋˜ column์€ ์œ„์—์„œ ์•„๋ž˜๋กœ, column-reverse๋Š” ์œ„์—์„œ ์•„๋ž˜๋กœ ์š”์†Œ๋ฅผ ๋ฐฐ์น˜ํ•œ๋‹ค.

 

Ex) flex-direction : column;๊ณผ ๊ฐ™์ด ์ฃผ๋ฉด ๋œ๋‹ค.

 

 

๋ถ€๊ฐ€์ ์œผ๋กœ flex-wrap์†์„ฑ์€ ์ค„๋„˜๊น€์ด ์žˆ์„ ๋•Œ ์š”์†Œ๋ฅผ ๋ฐ‘์—๋กœ ๋ณด๋‚ผ ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๊ฒƒ์ธ๋ฐ ์‚ฌ์šฉ์€

 

.container {
	flex-wrap :wrap;
}

 

๊ณผ ๊ฐ™์ด ํ•˜๋ฉด ๋œ๋‹ค.

 

 

3. flex ์ •๋ ฌ

flex์—์„œ๋Š” ์ •๋ ฌ๋งŒ ์ž˜ ์•Œ์•„๋„ ์š”์†Œ๋ฐฐ์น˜๋ฅผ ์›ํ•˜๋Š”๋ฐ๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋จผ์ € ๊ฐ€๋กœ์ถ• ์ •๋ ฌ๊ณผ ์„ธ๋กœ์ถ• ์ •๋ ฌ์ด์žˆ๋Š”๋ฐ, ๊ฐ€๋กœ์ถ•(x์ถ•)์— ๋Œ€ํ•œ ๊ฑด justify, ์„ธ๋กœ์ถ•(y์ถ•)์— ๋Œ€ํ•œ ๊ฑด align-items๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

 

 

์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณด์ž.

 

.container {
	justify-content : center;
}

 

์œ„์˜ ์ฝ”๋“œ๋Š” ๊ฐ€๋กœ์ถ•์— ๋Œ€ํ•ด์„œ ์ •๋ ฌํ•œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค.

 

x์ถ• ์ •๋ ฌ

 

๋ฐ˜๋Œ€๋กœ ์„ธ๋กœ์ถ•์€ center๋ฅผ ์คฌ์„ ๋•Œ y์ถ•์— ๋Œ€ํ•˜์—ฌ ์ •๋ ฌ์ด ๋œ๋‹ค.

 

.container {
	align-items : center;
}

y์ถ• ์ •๋ ฌ

 

 

center๋ง๊ณ ๋„

flex-start : ์š”์†Œ๋ฅผ ์ฒ˜์Œ์œผ๋กœ ๋ฐฐ์น˜

flex-end : ์š”์†Œ๋ฅผ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐฐ์น˜

space-between : ์š”์†Œ ์‚ฌ์ด์— ๋™์ผํ•œ ๊ฐ„๊ฒฉ์„ ์ค˜์„œ ๋ฐฐ์น˜ 

์™€ ๊ฐ™์€ ์†์„ฑ์„ ์ค˜์„œ ๋ฐฐ์น˜์‹œํ‚ฌ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

 

 

๊ทธ๋ ‡๋‹ค๋ฉด ์š”์†Œ๊ฐ€ ํ•œ๊ฐœ๊ฐ€ ์•„๋‹Œ ์—ฌ๋Ÿฌ๊ฐœ๋กœ ์ด๋ฃจ์–ด์ง„ ๋‘๊ฐœ์ด์ƒ์˜ ํ–‰์ผ ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

์ฆ‰ flex-wrap : wrap์— ์ƒํƒœ์—์„œ ์š”์†Œ๊ฐ€ ๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ–ˆ์„ ๋•Œ ๋ง์ด๋‹ค.

 

 

์ด๋Š” "align-content"๋ฅผ ์ฃผ๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

align-content๋Š” ์œ„์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ flex-start, space-between๋“ฑ ๋™์ผํ•˜๊ฒŒ ์ฃผ๋ฉด ์ž˜ ์ž‘๋™ํ•œ๋‹ค.

 

 

4. flex-grow

์ด๋Š” ์•„์ดํ…œ๋“ค์„ ๋น„์œจ์— ๋งž๊ฒŒ ์ฃผ๊ณ ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•˜๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด ์š”์†Œ๊ฐ€ 3๊ฐœ๊ฐ€ ์žˆ๋Š”๋ฐ 1:3:1ํฌ๊ธฐ๋น„์œจ๋กœ ๋ฐฐ์น˜๋ฅผ ํ•˜๊ณ ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.

๊ทธ๋ ‡๋‹ค๋ฉด ์ฝ”๋“œ๋Š” ์ด๋ ‡๋‹ค.

 

.item:nth-child(1) {
	flex-glow : 1
}
.item:nth-child(2) {
	flex-glow : 3
}
.item:nth-child(3) {
	flex-glow : 1
}

 

๊ทธ๋ƒฅ flex-glow :1๋งŒ ์กด์žฌํ•œ๋‹ค๋ฉด ์ด ์„ธ๊ฐœ์˜ ์š”์†Œ๋Š” ๋™์ผํ•œ ๋น„์œจ๋กœ container๋ฅผ ๋นˆํ‹ˆ์—†์ด ๊ฝ‰ ์ฑ„์šธ ๊ฒƒ์ด๋‹ค.

 

'css' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ - Servlet, JSP  (0) 2021.03.19