Flex Box๋กœ Flex ๐Ÿ’ช ๐Ÿ˜Ž ๐Ÿ‘Š

6751 ๋‹จ์–ด css
ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์š”์†Œ๋ฅผ ์ฒ˜์Œ ๋งŒ๋“ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์Šคํƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์š”์†Œ์˜ ์ƒ์ž๊ฐ€ ํŽ˜์ด์ง€์˜ ์ „์ฒด ๋„ˆ๋น„๋ฅผ ์ฐจ์ง€ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ์„ ์–ป๊ธฐ ์œ„ํ•ด CSS ์†์„ฑ์„ ์กฐ์ •ํ•˜๊ฑฐ๋‚˜ ์œ„์น˜ ์†์„ฑ์œผ๋กœ ์š”์†Œ๋ฅผ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Š” ์ง€๋ฃจํ•œ ์ž‘์—…์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋ ‰์Šค ๋ฐ•์Šค๋Š” ํ–‰์ด๋‚˜ ์—ด์— ์š”์†Œ๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. W3schools๋Š” "Flexible Box Layout Module์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ถ€๋™ ๋˜๋Š” ๋ฐฐ์น˜ ์—†์ด ์œ ์—ฐํ•œ ๋ฐ˜์‘ํ˜• ๋ ˆ์ด์•„์›ƒ ๊ตฌ์กฐ๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ โ€‹โ€‹๋””์ž์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ธ”๋กœ๊ทธ์—์„œ๋Š” UI ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๊ฐ„๋‹จํ•œ Flex ์†์„ฑ์„ ์‹œ์—ฐํ•ฉ๋‹ˆ๋‹ค.

ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ





#container{
    background-color: green;
    width: 100%;
    height: 100px;
    margin: auto;
    display: flex;
}


flex๋กœ ์„ค์ •๋œ display ์†์„ฑ์€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ flex ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹๋ณ„ํ•˜๋ฏ€๋กœ ๋‹ค๋ฅธ ์†์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ์ž์‹ ์š”์†Œ๊ฐ€ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๋Š” ๋ฐฉ์‹์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์š”์†Œ์— ํ‘œ์‹œ ์†์„ฑ์„ ์„ค์ •ํ•˜๊ธฐ ์ „์—. ์š”์†Œ๊ฐ€ ์„œ๋กœ ์œ„์— ์Œ“์ด๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋””์Šคํ”Œ๋ ˆ์ด๋ฅผ flex๋กœ ์„ค์ •ํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ์— ์ •๋ ฌ๋˜์–ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

Flexbox์˜ ์ถ•




  • Flexbox ์†์„ฑ์€ ๋‘ ๊ฐœ์˜ ์ถ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ์˜ ์ž์‹์ด ๋ฐฐ์น˜๋˜๋Š” ๊ธฐ๋ณธ ์ถ•์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฃผ์ถ•์€ ์ˆ˜ํ‰์ด์ง€๋งŒ ์ด ๋ธ”๋กœ๊ทธ์—์„œ ๋ณด์—ฌ์ค„ flex-direction ์†์„ฑ์˜ ์„ค์ •์— ๋”ฐ๋ผ ์ˆ˜์ง์ด ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ต์ฐจ์ถ•์€ ์ฃผ์ถ•์— ์ˆ˜์ง์ž…๋‹ˆ๋‹ค. ์ฃผ์ถ•์ด ์ˆ˜์ง์ด๋ฉด ์ˆ˜ํ‰์ด๊ณ , ์ˆ˜ํ‰์ด๋ฉด ์ˆ˜์ง์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ CSS ์†์„ฑ





    #container{
        background-color: green;
        width: 100%;
        height: 100px;
        margin: auto;
        text-align: center;
        display: flex;
        flex-direction: row-reverse
    }
    


    Flex-direction์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ–‰์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์š”์†Œ๋ฅผ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ํ–‰ ๋ฐ˜์ „์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด ๋ฐ˜๋Œ€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.


    #container{
        background-color: green;
        width: 100%;
        height: 250px;
        margin: auto;
        text-align: center;
        display: flex;
        flex-direction: column-reverse
    }
    


    flex-direction์€ ์ฒ˜์Œ์—์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ, ์œ„์—์„œ ์•„๋ž˜๋กœ ์š”์†Œ๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ์—ด๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. column-reverse ๋Š” ์œ„์™€ ๊ฐ™์ด ๋ฐ˜๋Œ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ๋†’์ด ์†์„ฑ์ด ์š”์†Œ๊ฐ€ ๋–จ์–ด์ง€์ง€ ์•Š๋„๋ก ํŽ˜์ด์ง€์— ๋ฐฐ์น˜ํ•  ์š”์†Œ ์ˆ˜๋ฅผ ์ˆ˜์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ๋†’์ด๋ฅผ 250px๋กœ ๋ณ€๊ฒฝํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค.


    #container{
        background-color: green;
        width: 50%;
        height: 60px;
        margin: auto;
        text-align: center;
        display: flex;
        justify-content: space-evenly
    }
    


    justify-content ์†์„ฑ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ flex-start๋กœ ์„ค์ •๋˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” space-evenly๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Justify-content๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ์š”์†Œ ์‚ฌ์ด์™€ ์ฃผ๋ณ€์— ๊ณต๊ฐ„์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. justify-content์— ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋งŽ์€ ๊ฐ’์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์œ ๋กญ๊ฒŒ ํƒํ—˜ํ•ด๋ณด์„ธ์š”!

    ํ”Œ๋ ‰์Šค ํ•˜์œ„ CSS ์†์„ฑ





    #three {
    flex-grow: 4
    }
    


    Flex ์ปจํ…Œ์ด๋„ˆ์˜ ์ž์‹์— ๋Œ€ํ•œ ์†์„ฑ์„ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. flex-grow ๋˜๋Š” flex-shrink๋ฅผ ์„ค์ •ํ•˜์—ฌ ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Œ์ˆ˜๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ž์‹ ์š”์†Œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋” ๋งŽ์€ ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ https://yoksel.github.io/flex-cheatsheet/์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค!

    ๊ฒฐ๋ก 



    Flex box๋Š” ๋ชจ๋“  ํ™”๋ฉด ํฌ๊ธฐ์— ๋ฐ˜์‘ํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ตฌ์— ๋”ฐ๋ฅด๋ฉด ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ๊ณผ ๊ฐ€์žฅ ์ž˜ ์–ด์šธ๋ฆฐ๋‹ค๊ณ  ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ css ์†์„ฑ ํ‘œ์‹œ๋ฅผ flex๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค๋ฅธ ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์œ„ ์š”์†Œ๋ฅผ ์ •๋ ฌํ•˜๊ฑฐ๋‚˜ ๊ฐ„๊ฒฉ์„ ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์œ„ ์š”์†Œ์˜ ์ˆœ์„œ๋ฅผ ์žฌ์ •๋ ฌํ•˜๊ณ , ๋Š˜๋ฆฌ๊ณ , ์ถ•์†Œํ•˜๊ณ , ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. Flex Box์— ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ์„ฑ์žฅํ•  ์—ฌ์ง€๊ฐ€ ํ•ญ์ƒ ๋” ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ธˆ ๋” ๊นŠ์ด ํŒŒํ—ค์ณ ๋ณด์„ธ์š”! ์ฝ์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    ์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ