2021. 8. 25. 15:56ใcss
Css-Flex
Css๋ฐฐ์น์ ์์ด์ ๊ฝ์ธ Flex๋ฅผ ๋ค๋ค๋ณด์.
๋จผ์ .
Flex๋ฅผ ์ ๋ฐฐ์ฐ๋์ง ๋ถํฐ ์์๋ณด์.
1) ๊ฐ๋จํ๊ณ ๋์ ์ธ ๋ถ๋ถ์์๋ ํจ์จ์ ์ด๋ค
2) ์ํ์ ์ธ ๋ถ๋ถ์์ ์ ๋ ฌ์ ํ๊ณ ์ถ๋ค
1. Flex์ ๊ธฐ๋ณธ
Flex์ ๊ธฐ๋ณธ๊ตฌ์กฐ๋ ์๋์ ๊ฐ๋ค.
<div class="container">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
class๋ช ์ธ container์ item์ ๊ด๋ก์ ์ผ๋ก ์ฌ์ฉํ๋ฉฐ, ๋ป ๊ทธ๋๋ก ์์์์ ๋ฌผ๊ฑด๋ค์ด ์๋ค๊ณ ์๊ฐํ๋ฉด ํธํ๋ค.
์ฐ๋ฆฌ๋ ๋ฌผ๊ฑด์ ์ธ๋ก๋ก ๋ฐฐ์นํ ์ง, ๊ฐ๋ก๋ก ๋ฐฐ์นํ ์ง, ๋์์ ๋ฐฐ์นํ ์ง ๋ฑ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ๋ค๋ก ๋ฐฐ์น๋ฅผ ํ ๊ฒ์ด๋ค.
์ด ๋ ํญ์ margin์ด๋ padding์ ์ค์ผ๋ก์จ ๊ฐ๊ฒฉ์ ์ฃผ๋ ๊ฒ์ ์๋นํ ๋นํจ์จ์ ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ "flex"๋ฅผ ์ฌ์ฉํ๋ค.
์ด์ ์์ฑ์ ๋ถ๋ชจ์์์ธ "container"์ ์ ์ฉํ ๊ฒ์ธ๊ฐ? ์์์์์ธ "item"์ ์ ์ฉํ ๊ฒ์ธ๊ฐ์ ๋ฐ๋ผ ์์์ ๋ฐฐ์น๋ฅผ ์์ ์์ฌ๋ก ํ ์ ์๋ค.
2. Containerํด๋์ค์ flex ์์ฑ
์๋ ์ฝ๋๋ containerํด๋์ค์ style์ด๋ค.
.container {
display : flex;
}
ํฐ ์์์ display :flex๋ฅผ ์ค๋ค๋ฉด, item๋ค์ด ๊ฐ๋ก๋ก ์ ๋ ฌ์ด ๋๋ค.
์๋ divํ๊ทธ๋ block์์๋ก ์ธ๋ก๋ก ์ด๊ฑฐ๊ฐ ๋๋๊ฒ ์ ์์ด์ง๋ง ์ด๋ค์ ๊ฐ์ธ๊ณ ์๋ container์ flexํ๋ ์คฌ๋ค๊ณ ๊ฐ๋ก๋ก ๋ฐฐ์น๊ฐ ๋์๋ค.
์ฌ๊ธฐ์ ์ง๊ณ ๋์ด๊ฐ ๊ฒ์ ๊ฐ item์ width๋งํผ ๋ฐฐ์น๊ฐ ๋๋ค๋ ๊ฒ์ด๋ค.
display : inline-flex๋ํ ๊ฐ๋จํ๋ค. flex์์ inline-block์ ํํ๋ฅผ ๋๊ณ ์๋ค๊ณ ๋ณด๋ฉด๋๋ค.
์๋ฅผ ๋ค์ด ๊ธฐ์กด์ flex๋ item์ ๊ฐ์ธ๋ ์ฌ๋ฐฑ์ด ๋จ์ ์ ์์ง๋ง inline-flex๋ container๊ฐ item์ ๊ฑฐ์ ๊ฝ ๋ถ์ด์ ๋ง์ถ๋ค๊ณ ๋ณด๋ฉด ๋๋ค. ์ํฉ์ ๋ง์ถฐ ์ฐ๋ฉด ๋๋ค.
3. flex-direction
flex์๋ ๋ฐฉํฅ์ด ์กด์ฌํ๋ค.
row๋ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก row-reverse๋ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ์์๋ฅผ ๋ฐฐ์นํ๋ค.
๋ column์ ์์์ ์๋๋ก, column-reverse๋ ์์์ ์๋๋ก ์์๋ฅผ ๋ฐฐ์นํ๋ค.
Ex) flex-direction : column;๊ณผ ๊ฐ์ด ์ฃผ๋ฉด ๋๋ค.
๋ถ๊ฐ์ ์ผ๋ก flex-wrap์์ฑ์ ์ค๋๊น์ด ์์ ๋ ์์๋ฅผ ๋ฐ์๋ก ๋ณด๋ผ ๊ฒ์ธ์ง์ ๋ํ ๊ฒ์ธ๋ฐ ์ฌ์ฉ์
.container {
flex-wrap :wrap;
}
๊ณผ ๊ฐ์ด ํ๋ฉด ๋๋ค.
3. flex ์ ๋ ฌ
flex์์๋ ์ ๋ ฌ๋ง ์ ์์๋ ์์๋ฐฐ์น๋ฅผ ์ํ๋๋ฐ๋ก ํ ์ ์๋ค.
๋จผ์ ๊ฐ๋ก์ถ ์ ๋ ฌ๊ณผ ์ธ๋ก์ถ ์ ๋ ฌ์ด์๋๋ฐ, ๊ฐ๋ก์ถ(x์ถ)์ ๋ํ ๊ฑด justify, ์ธ๋ก์ถ(y์ถ)์ ๋ํ ๊ฑด align-items๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
์์๋ฅผ ๋ค์ด๋ณด์.
.container {
justify-content : center;
}
์์ ์ฝ๋๋ ๊ฐ๋ก์ถ์ ๋ํด์ ์ ๋ ฌํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
๋ฐ๋๋ก ์ธ๋ก์ถ์ center๋ฅผ ์คฌ์ ๋ y์ถ์ ๋ํ์ฌ ์ ๋ ฌ์ด ๋๋ค.
.container {
align-items : center;
}
center๋ง๊ณ ๋
flex-start : ์์๋ฅผ ์ฒ์์ผ๋ก ๋ฐฐ์น
flex-end : ์์๋ฅผ ๋ง์ง๋ง์ผ๋ก ๋ฐฐ์น
space-between : ์์ ์ฌ์ด์ ๋์ผํ ๊ฐ๊ฒฉ์ ์ค์ ๋ฐฐ์น
์ ๊ฐ์ ์์ฑ์ ์ค์ ๋ฐฐ์น์ํฌ ์๊ฐ ์๋ค.
๊ทธ๋ ๋ค๋ฉด ์์๊ฐ ํ๊ฐ๊ฐ ์๋ ์ฌ๋ฌ๊ฐ๋ก ์ด๋ฃจ์ด์ง ๋๊ฐ์ด์์ ํ์ผ ๋๋ ์ด๋ป๊ฒ ํด์ผํ ๊น?
์ฆ flex-wrap : wrap์ ์ํ์์ ์์๊ฐ ๋ฒ์๋ฅผ ์ด๊ณผํ์ ๋ ๋ง์ด๋ค.
์ด๋ "align-content"๋ฅผ ์ฃผ๋ฉด ํด๊ฒฐํ ์ ์๋ค.
align-content๋ ์์ ๋ง์ฐฌ๊ฐ์ง๋ก flex-start, space-between๋ฑ ๋์ผํ๊ฒ ์ฃผ๋ฉด ์ ์๋ํ๋ค.
4. flex-grow
์ด๋ ์์ดํ ๋ค์ ๋น์จ์ ๋ง๊ฒ ์ฃผ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํ๋ค.
์๋ฅผ๋ค์ด ์์๊ฐ 3๊ฐ๊ฐ ์๋๋ฐ 1:3:1ํฌ๊ธฐ๋น์จ๋ก ๋ฐฐ์น๋ฅผ ํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํ์.
๊ทธ๋ ๋ค๋ฉด ์ฝ๋๋ ์ด๋ ๋ค.
.item:nth-child(1) {
flex-glow : 1
}
.item:nth-child(2) {
flex-glow : 3
}
.item:nth-child(3) {
flex-glow : 1
}
๊ทธ๋ฅ flex-glow :1๋ง ์กด์ฌํ๋ค๋ฉด ์ด ์ธ๊ฐ์ ์์๋ ๋์ผํ ๋น์จ๋ก container๋ฅผ ๋นํ์์ด ๊ฝ ์ฑ์ธ ๊ฒ์ด๋ค.
'css' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์น ์ ํ๋ฆฌ์ผ์ด์ - Servlet, JSP (0) | 2021.03.19 |
---|