1. ๋ถ๋ชจ์์์์ ์ค์ ํด์ค์ผ ํ ๊ฒ
display: flex;
/* ๋ถ๋ชจ์์์ flex๋ก ์ค์ ํ๋ฉด, ์์ ์์๋ค์ ํฌ๊ธฐ ์์น๋ฅผ ์์ ์์ฌ๋ก ๋ฐ๊ฟ ์ ์๊ฒ ๋๋ค.
์์ ์์ ์ฌ์ฉ์ ๋ํ ์ ์ฐ์ฑ์ด ์ฃผ์ด์ง๋ค. */
flex-direction: row
/* column, row-reverse, column-reverse*/
/* ์์ ์์๋ค์ด ๋ฐฐ์ด๋ ๊ธฐ์ค์ ์ ํ๋ค.
row๋ก ํ๋ฉด, ์ผ์์์ ์ค๋ฅธ์ชฝ์ผ๋ก(๊ฐ๋ก์ถ) ์ญ ๋์ด,
column์ผ๋ก ํ๋ฉด ์์์ ์๋๋ก(์ธ๋ก์ถ) ์ญ ๋์ด
reverse๋ ๊ฐ๊ฐ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ, ์๋์์ ์๋ก
์ฌ๊ธฐ์ main ์ถ์ ํด๋น ์์๊ฐ ์ ํ ๊ธฐ์ค์ด๊ณ ,
์์ง ์ถ์ ๊ทธ์ ๋ฐ๋๋๋ ์ถ์ด๋ค.
์๋ฅผ ๋ค์ด row์ด๋ฉด main ์ถ์ ๊ฐ๋ก์ด๊ณ
์์ง ์ถ์ column์ด๋ค.*/
flex-wrap: wrap or no wrap;
/* ์์ ์์ ์๊ฐ ๋ง๊ฑฐ๋ ํฌ๊ธฐ๊ฐ ์ปค์ ๋ถ๋ชจ ์์๋ฅผ ๋ฒ์ด๋ ๋,
wrap ํ๋ฉด, ๊ทธ๋๋ ๊ตฌ๊ฒจ์ ์์ชฝ์ผ๋ก ๋ค ์ง์ด๋ฃ๊ฒ ๋ค๋ ๋ป*/
justify-content: flex-start, flex-end, ...;
/* main ์ถ์์์ ์ ๋ ฌ ๊ธฐ์ค
flex-direction์ด row์ผ๋,
flex-start๋ ์์ ์์ ๋ค ์ผ์ชฝ ์ ๋ ฌ,
flex-end์ด๋ฉด ์์ ์์ ๋ค ์ค๋ฅธ์ชฝ ์ ๋ ฌ*/
align-items: stretch, flex-start, flex-end,...;
/* ์์ง ์ถ์์์ ์ ๋ ฌ ๊ธฐ์ค
flex-direction์ด row์ผ๋,
stretch๋ ์ธ๋ก๋ก ์ต๋ํ ํฌ๊ธฐ ๋ถ๋ ค์ ๋ถ๋ชจ ์์ ๋ค ์ฑ์ฐ๊ธฐ
flex-start์ด๋ฉด ์๋ก ์ ๋ ฌ*/
align-content: stretch;
/*์์ง ์ถ์ด ์ ๋ ฌ ๊ธฐ์ค
align-item์ ์์ ์์๋ค๋ผ๋ฆฌ์ ๋์์ ์ฉ์ธ ํ๋๋ฐ
์๋ ๊ทธ๋ฐ ๊ฑฐ ์์ด ์ ๋ ฌ ๊ธฐ์ค ๋ ๊ณณ์ผ๋ก ์์ ์์ ๋ค ๋ฐ์ด๋ฃ์.*/
gap
/*์์ ์์๋ค๋ผ๋ฆฌ ์ผ๋ง๋ ๊ฑฐ๋ฆฌ๋ฅผ ๋์ธ ๊ฒ์ธ๊ฐ*/
์ด๊ฒ align-item ์ด ๊ฒฝ์ฐ
2. ์์ ์์์์ ์ค์ ํด์ค์ผ ํ ๊ฒ.
flex-basis: ํฌ๊ธฐ;
/* ๋ฉ์ธ์ถ ์ ์์ ์์์ ๊ธธ์ด row์ด๋ฉด ๋๋น, column์ด๋ฉด ๋์ด๊ฐ ๋จ
์์์์์ ํฌ๊ธฐ๊ฐ ๋ถ๋ชจ์์๋ฅผ ๋์ด๋ฒ๋ฆฌ๋ฉด,
๋ถ๋ชจ์์์ ํฌ๊ธฐ๋ฅผ ์ ๋๋ ๋ฒ์์์ ์ต๋ํ์ ํฌ๊ธฐ๋ง ํํ์ด ๋๋ค.*/
flex-grow: ์ซ์;
/* ๋น ๊ณต๊ฐ์ด ์์ผ๋ฉด ํด๋น ์์ ์์๊ฐ ์ฑ์ฐ๊ฒ ๋ค๋ ์๋ฏธ
์ซ์์ ์ ํ ๊ฐ์, ๋ค๋ฅธ ์์ ์์์ flex-grow์ ๊ฐ๊ณผ์ ๊ด๊ณ์์ ์๋์ ์ธ ๋น์จ๋ก ์์ฉํ๋ค.
ex-
1:1์ด๋ฉด 50๋ 50์ผ๋ก ๋ถ๋ชจ์์ ์ฑ์ด๋ค.
7:3์ด๋ฉด 7:3์ผ๋ก ์ฑ์ด๋ค,*/
flex-shrink: ์ซ์;
/*grow์ ๋ฐ๋๋ก ํ์ ์์๋ค์ ํฌ๊ธฐ๊ฐ ์ปค์ก์ ๋ ์๋ ํฌ๊ธฐ์์ ์ผ๋ง๋ ์๋ณดํ๊ฒ ๋๊ฐ ์ด๋ค.*/
3. ์ค์ค๋ก ํด๋ณด๊ธฐ
#container{
height: 100vh;
display: flex;
flex-direction: column;
}
#header{
flex-basis: 100px;
align-items: flex-end;
background-color: dodgerblue;
display: flex;
flex-direction: row;
padding: 12px;
gap: 12px;
}
#header div:first-child{
background-color: yellow;
padding: 12px 0;
text-align: center;
flex-grow: 1;
}
#header div:last-child{
background-color: yellow;
padding: 12px 0;
text-align: center;
flex-grow: 7;
}
#main {
flex-grow: 1;
display: flex;
justify-content: center;
align-items: center;
}
#content{
background-color: skyblue;
padding: 24px;
text-align: center;
}
#footer{
flex-basis: 60px;
background-color: tomato;
}
0