220916(๊ธ)
๐ชด ์ฑ์ฅ์ผ์ง 2.0
์ฑ
ํ๋ณตํ ์ด๊ธฐ์ฃผ์์(์จ์ธ ๋ค์ด์ด)
์ ๋ด์ฉ์ ์๊ทน๋ฐ์ ์์ํ๋ ์๋ฐํ ์ฑ์ฅ๊ธฐ๋ก
์ด์์๋ ๊ฝ๊ณผ ์ฃฝ์ ๊ฝ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฐ?
์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์ด์ ์๋ ๊ฒ์ด๋ค.
์๋ช ์ ์ ์ผํ ์ฆ๊ฑฐ๋ ์ฑ์ฅ์ด๋ค!
๐ณ ํค์๋ (1.0) ์ต๋ํ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌ, ์ถํ์ ๋ณด๋ฉด์ ์ค์ค๋ก ์ค๋ช ๐ ๊ฒฝํ ์์ฃผ๋ก (2.0) ๋จ์ ์ ๋ณด๋ฅผ ์ ๋ฌํ๊ธฐ๋ณด๋ค ๋ฌด์์ ๋ฐฐ์ ๊ณ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์งง๊ณ ๊ฐ๋จํ๊ฒ ์์ฑํ์
CSS
๋ฐ์ํ(feat. media query)
ํ๋์ css ํ
ํ๋ฆฟ ๋ด์์ media query๋ฅผ ํตํด ํน์ ์กฐ๊ฑด(๊ธฐ๊ธฐ์ ์ข
๋ฅ, ํ๋ฉด ํฌ๊ธฐ ๋ฑ๋ฑ)์ ๋ง๋ ์คํ์ผ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ
์ฌ์ฉ ๋ฐฉ๋ฒ
- (1) html link์์ ์กฐ๊ฑด์ ์ฃผ๊ณ ๊ทธ ์กฐ๊ฑด์ ๋ง๋ css ํ์ผ์ ์ ์ฉํ๊ธฐ
<link rel="stylesheet" media="screen and (max-width: 768px)" href="jaystyle.css" />
<!-- ๊ฐ๋กํญ์ด 768px์ด ์ต๋ ์ฆ, 768px ์ดํ์ด๊ณ media type์ด screen์ธ ๊ฒฝ์ฐ jaystyle.css๋ฅผ ์ ์ฉํ๋ค๋ ์๋ฏธ -->
- (2) css์ media query ์์ฒด๋ฅผ ์ด์ฉํ๊ธฐ
/* ์ด๊ณณ์๋ desktop์ ์ํ style ์์ฑ */
/* (1) media rule */
@media screen and (max-width: 768px) {
/* ๊ฐ๋กํญ 768px์ดํ, media type์ด screen -> ๋ณดํต ๋ชจ๋ฐ์ผ ์ ์ฉ style์ ํด๋น
์ฌ๊ธฐ์ ์ผ๋ฐ์ ์ธ style ๋ฌธ๋ฒ ์์ฑํ๋ฉด ๋๋ค. */
}
/* (2) import rule */
/* media type์ด screen์ด๊ณ ๊ฐ๋กํญ์ด 768px์ดํ์ผ ๋ `style.css`๋ฅผ importํ์ฌ ์ ์ฉํ๋ค๋ ์๋ฏธ*/
@import url (style.css) screen and (max-width: 768px);
CSS
flex - grow์ shrink
flex-basis
์ผํ๋ณด๋ฉด width์ ์ ์ฌํ๋ค.
- flex-direction์ ๋ฐ๋ผ์ ์ฃผ์ถ์ ํด๋นํ๋ ๋ถ๋ถ์ ๊ธธ์ด๋ฅผ ๊ฒฐ์ ํ๋ค.
- ๋ถ๋ชจ ํ๊ทธ ์๋์ ์์ ํ๊ทธ๊ฐ ์์ ๋, ์์ ํ๊ทธ์ ํฌ๊ธฐ๋ฅผ width, height์ผ๋ก ์ง์ ํ ๊ฒฝ์ฐ ๋ถ๋ชจ ํ๊ทธ๋ฅผ ๊ฐ์ ์ ์ผ๋ก ๋์ด๊ฐ๋ค.
- ๊ทธ๋ฌ๋ flex-basis๋ฅผ ์ฌ์ฉ ์, ๋ถ๋ชจ ํ๊ทธ์ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํด์ ๋์ด๊ฐ์ง ์๋ ์ ์์ ์ต๋์ ํฌ๊ธฐ๋ฅผ ๊ฐ๊ฒ ๋๋ค.
- flex-basis์ width๋ฅผ ๋์ ์ ์ฉ ์, flex-basis๊ฐ ๋ ์ฐ์ ๊ถ์ ๊ฐ๋๋ค.
- flex-grow์ flex-shrink๋ฅผ ํตํด ํฌ๊ธฐ๋ฅผ ์ค์ด๊ฑฐ๋ ๋๋ฆฌ๊ธฐ ์ ์ ๊ธฐ๋ณธ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์
flex-wrap
๊ธฐ๋ณธ์ ์ผ๋ก nowrap์ด ์ ์ฉ๋์ด์๋ค.
- flex-wrap: nowrap - ๋ถ๋ชจ ํ๊ทธ์ ํฌ๊ธฐ๋ณด๋ค ์์ ํ๊ทธ๋ค์ ํฌ๊ธฐ ํฉ์ด ๋ ํด ๋, ์์์ ๋ถ๋ชจ ํ๊ทธ์ ํฌ๊ธฐ์ ๋ง๊ฒ ์์ ํ๊ทธ๋ฅผ ์ค์ฌ์ ํ ์ค์ ๋ฃ๊ฒ ๋๋ค.(์ผ๋ฐ์ ์ธ flex)
- flex-wrap: wrap - ๋ถ๋ชจ ํ๊ทธ์ ํฌ๊ธฐ๋ฅผ ์์ ํ๊ทธ๋ค์ด ๋์ด๊ฐ ๋, ๋์ด๊ฐ๋ ์์ ํ๊ทธ๋ค์ ์๋์ผ๋ก ๋ค์ ์ค๋ก ์ฎ๊ฒจ์ค๋ค.
flex-grow
๋ถ๋ชจ ํ๊ทธ๊ฐ ์์ ํ๊ทธ๋ค๋ณด๋ค ํด ๋, ๋ถ๋ชจ ํ๊ทธ์ ํฌ๊ธฐ์ ๋ํด์ ์์ ํ๊ทธ๋ค์ด ๋จ๊ธด ๊ณต๊ฐ์ ์ฑ์ฐ๊ธฐ ์ํ ์์ฑ
์์ ํ๊ทธ๋ง๋ค ๋์ด๋์ ๋จ์ ๊ณต๊ฐ์ ์ฑ์ธ ๋น์จ์ ํ ๋นํด์ค ์ ์๋ค.
๋ถ๋ชจ ํ๊ทธ์ ํฌ๊ธฐ๋ฅผ x, ์์ ํ๊ทธ๋ค์ ํฌ๊ธฐ ํฉ์ y๋ผ๊ณ ํ ๋ (x - y)๊ฐ์ ์๋ ์ ํ ๋น์จ๋งํผ ๋๋ ๊ฐ๊ณ ํฌ๊ธฐ๋ฅผ ํค์ด๋ค.
.child:nth-child(1) {
display: flex;
flex-grow: 1
}
.child:nth-child(2) {
display: flex;
flex-grow: 2
flex-shrink
grow์ ๋ฐ๋ ๊ฐ๋
์ผ๋ก ๋ถ๋ชจ ํ๊ทธ๊ฐ ์์ ํ๊ทธ๋ค๋ณด๋ค ์์ ๋, ๋ถ๋ชจ ํ๊ทธ์ ํฌ๊ธฐ์ ๋ํด์ ์์ ํ๊ทธ๋ค์ด ๋์ด๊ฐ ๊ณต๊ฐ์ ์ค์ด๊ธฐ ์ํ ์์ฑ
์์ ํ๊ทธ๋ง๋ค ๋์ด๊ฐ๋ ๊ณต๊ฐ์ ๋ํด ์ค์ด๋ค๊ฒ ํ ๋น์จ์ ํ ๋นํด์ค ์ ์๋ค.
๋ถ๋ชจ ํ๊ทธ์ ํฌ๊ธฐ๋ฅผ x, ์์ ํ๊ทธ๋ค์ ํฌ๊ธฐ ํฉ์ y๋ผ๊ณ ํ ๋ (y - x)๊ฐ์ ์๋ ์ ํ ๋น์จ๋งํผ ๋๋ ๊ฐ๊ณ ํฌ๊ธฐ๋ฅผ ํค์ด๋ค.
์ฆ, ์๋์์ 2๋ฒ์งธ ์์ ํ๊ทธ๋ 1๋ฒ์งธ ์์ ํ๊ทธ๋ณด๋ค 2๋ฐฐ ๋ ์ค์ด๋๋ ๊ฒ์ด๋ค.
.child:nth-child(1) {
display: flex;
flex-shrink: 1
}
.child:nth-child(2) {
display: flex;
flex-shrink: 2
์ถ๊ฐ: flex-flow
- flex-flow: row wrap; -> flex-direction๊ณผ flex-wrap์ ํ ์ค์ ํํํ๊ฒ ํด์ค๋ค.