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