flex๋ฅผ ์ด์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ํผ์ณ๋ณผ ์ ์๋ ๊ฐค๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค์ด ๋ณด์.
์ด๋ฒ ๊ณผ์ ๋ ๋๋ถ๋ถ CSS ์์ฑ์ ํ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ ์ด์์๊ณผ ์คํฌ๋ฆฝํธ๋ ์ต์ํ์ผ๋ก ์์ฑํ๋ค. ๋ ์ด์์์ ๊ฐ์์์ ์ ๊ณตํ๋ ๋๋ก ๋ค์ฏ ๊ฐ์ ์ด๋ฏธ์ง ํจ๋์ ๋ฐฐ์นํ์๊ณ , ์คํฌ๋ฆฝํธ๋ ํด๋ฆญํ ํจ๋๋ง ํผ์ณ์ง๋๋ก classList๋ฅผ ์์ ํ์๋ค.
๊ฐ์์์ ์๊ตฌํ๋ ๋์์ธ์ ์ฐธ๊ณ ํ์ฌ ํฐํธ์ ์ด๋ฏธ์ง๋ฅผ ์ ์ฉํ๊ณ , ์ด ๋ ๊ฐ์ flex ์ปจํ ์ด๋๋ฅผ ์ค์ ํ๋ค. ๋จผ์ ๋ค์ฏ ๊ฐ์ ํจ๋์ ๊ฐ๋ก๋ก ์ ๋ ฌํ๊ธฐ ์ํด panels๋ฅผ flex๋ก ์ค์ ํ๊ณ , ํจ๋ ์์ ๊ธ์๋ฅผ ์ธ๋ก๋ก ์ ๋ ฌํ๊ธฐ ์ํด panel์ flex๋ก ์ค์ ํ๋ค.
์ด๋ฆฐ ์ํ์ ํจ๋์ open ํด๋์ค๋ฅผ ์ถ๊ฐํ์ฌ ์คํ์ผ๋ง ํ์๋ค. flex-grow๋ก ์ปจํ ์ด๋๋ฅผ ์ฑ์ฐ๊ธฐ ์ํด ๋์ด๋๋ ๋น์จ์ ์ค์ ํ ์ ์๋๋ฐ ๊ธฐ๋ณธ์ 1์ด๊ณ ์ด๋ฆฐ ํจ๋๋ง 5๋ก ์ฃผ์ด์ ์ด๋ฆฐ ํจ๋์ด ์ฐจ์งํ๋ ๋น์จ์ ๋๊ฒ ๋ง๋ค ์ ์๋ค. ํ์์๋ ๊ฐ์ด๋ฐ ๊ธ์๋ง ๋ณด์ด๊ฒ ํ๊ณ ์ ์๋ ์ค์ ํ๋ฉด ๋ฐ์ผ๋ก ์ด๋์์ผฐ๋ค๊ฐ, ํด๋ฆญ๋๋ฉด ์๋ ์์น๋ก ๋์์ ํ๋ฉด์ ๋ํ๋๊ฒ ํ์๋ค.
ํจ๋์ด ๋ฐ๋ก ์ด๋ฆฌ๋ ๊ฒ์ด ์๋๋ผ ์ด์ง ๋ซํ๋ค๊ฐ ์ด๋ฆฌ๋ ํฌ์ธํธ๋ฅผ ์ฃผ๊ธฐ ์ํด ํธ๋์ง์ ์ผ๋ก ๋ฒ ์ง์ด ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
์ด๋ ๊ฒ ํด์ ํจ๋์ด ์ด๋ฆฐ ์ํ๋ ์์ ๊ฐ์ด ๋ง๋ค์ด์ก๋ค. ์ดํ์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ธ์ ๋ ๊ทธ๋ฆผ์๋ฅผ ์ถ๊ฐํ๊ณ ๊ธ์ ํฌ๊ธฐ๋ ๊ทธ๋ฆผ์ ๊ฐ์ ์ธ์ธํ ๋ถ๋ถ์ ์์ ํ์ฌ ์์ฑํ์๋ค.
ํ๋ฉด์ ์์ฐ์ค๋ฝ๊ฒ ์ฐ์ถํ๊ธฐ ์ํด flex์ ๋ค์ํ ์์ฑ์ธ flex-direction, flex(flex-basis/grow/shrink), align/justify ๋ฑ์ ์ฐพ์๋ณด์๋ค. ๋น๊ต์ ์ต์ ๋ฌธ๋ฒ์ด๋ผ ๊ทธ๋ฐ์ง ๋ค๋ฅธ ๋์คํ๋ ์ด ์ต์ ์ธ block, inline, grid ๋ฑ์ ๋นํด ์๋ฃ๊ฐ ์ ์์ง๋ง ์ด๋ฏธ์ง ์๋ฃ์ ๊ฐ๊ตฌ๋ฆฌ ๊ฒ์์ ํตํด ๊ฐ๋ ์ ์ตํ ์ ์์๋ค. ํนํ ๊ฐ๊ตฌ๋ฆฌ ๊ฒ์์ CSS๋ฅผ ์ง์ ์์ฑํ๋ฉฐ ๋ณํ๋ ๋ชจ์ต์ ๊ฒ์์ฒ๋ผ ํ์ธํ ์ ์์ด ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์ตํ๊ธฐ ์ข์๋ค. grid์ ๋นํด ๊ฐํธํ๊ณ ๊ฐ๋ ฅํ๊ธฐ๋ ํ๋ ์ง๊ด์ฑ์ ๋จ์ด์ ธ์ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํด๋ณด๋ฉฐ ํ์คํ ์ดํดํด์ผ ํ ๊ฒ ๊ฐ๋ค.
ํธ๋์ง์ ์ผ๋ก๋ ๊ธฐ๋ณธ ์ ๊ณต๋๋ ease ํจ์๋ค๋ง์ ์ฌ์ฉํ์๋๋ฐ, ๊ฐ์์ ์ ๋๋ฉ์ด์ ์ ์ฌํํ๊ธฐ ์ํด ๋ฒ ์ง์ด ํจ์๋ฅผ ์ฒ์ ์ฌ์ฉํด ๋ณด์๋ค. ์ฌ๋ฌ ์ฌ์ดํธ์์ ๊ทธ๋ํ๋ฅผ ์์ ํด๊ฐ๋ฉฐ ์ ๋๋ฉ์ด์ ์ ๋ฏธ๋ฆฌ ๋ณด์ฌ์ฃผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํด ๊ตฌํํ๊ธฐ ํธ๋ฆฌํ๋ค.