Flex

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ํ•ด์˜ค๋ฉด์„œ ๋งค์šฐ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” cssํ‚ค์›Œ๋“œ์ธ flex์ด๋‹ค.

๋ณดํ†ต ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑํ• ๋•Œ ์ˆ˜์ง/์ˆ˜ํ‰์œผ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ flex์ด๋‹ค.

flex๋Š” 1์ฐจ์› ๋ ˆ์ด์•„์›ƒ ๋ชจ๋ธ๋กœ ์„ค๊ณ„๋˜์—ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” 1์ฐจ์›์ด๋ž€, ์šฐ๋ฆฌ๊ฐ€ ๋ ˆ์ด์•„์›ƒ์„ ๋‹ค๋ฃฐ๋•Œ ํ•˜๋‚˜์˜ ๋ฐฉํ–ฅ๋งŒ์„ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. (์ˆ˜ํ‰ ๋˜๋Š” ์ˆ˜์ง). 2์ฐจ์› ๋ ˆ์ด์•„์›ƒ ๋ชจ๋ธ๋กœ๋Š” Grid๊ฐ€ ์žˆ๋Š”๋ฐ ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ๋‹ค๋ค„๋ณด๋ ค๊ณ ํ•œ๋‹ค.

<div className='flexbox'>
</div>
.flexbox{
    display : flex;
    flex-direction : column;
}

์˜ˆ์‹œ์ฒ˜๋Ÿผ html์š”์†Œ์— flex๋ฅผ ์ฃผ๊ฒŒ ๋˜๋ฉด flex container๊ฐ€ ๋˜์–ด ํ•˜์œ„ ์ž์‹๋“ค์€ flex item์ด ๋œ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ ˆ์ด์•„์›ƒ์˜ ๊ธฐ์ค€๋ฐฉํ–ฅ(์ฃผ์ถ•)์€ ์ˆ˜ํ‰(row)๋กœ ์„ค์ •์ด ๋˜์–ด์žˆ์œผ๋ฉฐ, flex-direction ์†์„ฑ์œผ๋กœ ์กฐ์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด ๋ ˆ์ด์•„์›ƒ์˜ ๋ฐฉํ–ฅ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๋Š”๊ฒƒ์„ justify-content, ๋ ˆ์ด์•„์›ƒ์˜ ์ˆ˜์ง ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๋Š”๊ฒƒ์„ align-items์ด๋‹ค.

.flexbox {
    display: flex;
    flex-direction: column;
    // justify-content๋Š” ์ฃผ์ถ•๊ธฐ์ค€ ์ •๋ ฌ์ด๋ฏ€๋กœ, ํ˜„์žฌ ๋ฐฉํ–ฅ์ธ ์ˆ˜์ง๊ธฐ์ค€ ์œ„์•„๋ž˜๊ฐ„๊ฒฉ์„ ์ •๋ ฌ์‹œํ‚จ๋‹ค.
    justify-content: center;
    // align-items๋Š” ์ˆ˜์ถ•์˜ ์ˆ˜์ง๋ฐฉํ–ฅ, ์ฆ‰ items๋“ค์˜ ์ขŒ์šฐ๊ฐ„๊ฒฉ์„ ์ •๋ ฌํ•œ๋‹ค.
    // ์˜ˆ์‹œ๋Š” left์ด๋ฏ€๋กœ items๋“ค์„ ์ˆ˜ํ‰๊ธฐ์ค€ ์™ผ์ชฝ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.
    align-items: left;
}

flex-container ์•ˆ์˜ item๋“ค์˜ ํฌ๊ธฐ๋Š” flex-basis๋กœ ์กฐ์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

.flexitems {
    // flex-basis: auto; ๊ธฐ๋ณธ๊ฐ’
    flex-basis: content;
    // flex-basis: 10px;
}

๊ธฐ๋ณธ๊ฐ’์€ auto๋กœ ์„ค์ •์ด ๋˜์–ด์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ, item์— width๊ฐ’์ด ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ๊ฐ’์„ ๋”ฐ๋ฅด๊ณ , ์—†๋‹ค๋ฉด ์•„์ดํ…œ์˜ ๋‚ด์šฉ ํฌ๊ธฐ๋งŒํผ์„ ๊ฐ€์ง„๋‹ค. (๋งŒ์•ฝ basis๊ฐ’์— ํŠน์ • ํฌ๊ธฐ๋ฅผ ์ฃผ๊ณ  width๊ฐ’์„ ๋™์‹œ์— ์ฃผ๊ฒŒ ๋˜๋ฉด width๊ฐ’์„ ๋”ฐ๋ฅธ๋‹ค.)

๋งŒ์•ฝ item๋“ค์˜ ํฌ๊ธฐ๋ฅผ ์ƒ๋Œ€์ ์œผ๋กœ ์ •์˜ํ•˜๋ ค๋ฉด flex-grow๋ฅผ ์ด์šฉํ•œ๋‹ค.

.flexitems:nth-child(2) {
    // flex-grow: 1; ๊ธฐ๋ณธ๊ฐ’
    flex-grow: 2;
}

๊ธฐ๋ณธ๊ฐ’์€ 1์ด๋‹ค. ์˜ˆ์‹œ์ฒ˜๋Ÿผ ํŠน์ • item์˜ ํฌ๊ธฐ๋ฅผ ๋‹ค๋ฅธ ์•„์ดํ…œ๋“ค๋ณด๋‹ค ํฌ๊ฒŒ ๋งŒ๋“ค์ˆ˜ ์žˆ๋‹ค.

Last updated