1. Float
๐ป1) Float
Float
๋ฅผ ์ฌ์ฉํ๋ ์ด์ ?
-> ๊ฐ๋ก ๋ฐฐ์น๋ฅผ ํ๊ธฐ ์ํด
๐ป2) Float๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด
- ๋ถ๋ชจ๋ ๊ทธ ์์์ ์ง ๋๊ฐ ์์์ผ๋ก ์ฌ๊น. ๋ถ๋ชจ๋, ํ์ ๋ค๋ ๊ทธ ๋์ ์ ๊ธธ์ด ์์ด์ง๋ค.๐ฌ
Inline
, Inline-block
์์ ๋ชจ๋ Block
์ผ๋ก ์ ๋ถ ์์น
Block
์ ๋์ง๋ง ๊ธธ๋ง์ ๋ชปํจ๐คช.
- ์๊ธฐ๊ฐ ๊ฐ์ง ์ปจํ
์ธ ํฌ๊ธฐ๋งํผ๋ง ์๋ฆฌ ์ฐจ์งํจ.
width
์ ์ธํ ๊ฒฝ์ฐ ๋จ์ ๊ณต๊ฐ ์๋์ผ๋ก margin
์ฑ์ฐ๋ ๊ฒ๋ ๐
โโ๏ธ๐
โโ๏ธ
margin
์ ์ค ์๋ ์์. but ์๋์ผ๋ก ์ฑ์ฐ๋ ๊ฑธ ๋ชปํจ
- ๋ชจ๋ ์์์ด ์ง์ ๋๊ฐ๋ฉด ๋ถ๋ชจ์
height
๋ 0์ด ๋จ. ์ฆ, ๊ณต๊ฐ์ 1๋ ์ฐจ์งํ์ง ์์. ์ฆ, Layout์ ๋ถ๊ดด๊ฐ ์ผ์ด๋จ๐จ๐ฑ
- ๋๋ง ๋ณผ ์ ์๋
Float
(Inline
)๐ป
Inline
์์๋ค์ ์ง ๋๊ฐ Float
๋ฅผ ๋ณผ ์ ์์
- ์ด๋ฐ ์ ๋ค ๋๋ฌธ์ ์์ฆ์ ์ ์ฌ์ฉํ์ง ์๋๋ค..๐
๐ป3) How to fix
- Honeyful Trick:
overflow: hidden;
overflow: hidden;
์ ์ฌ์ฉํ๋ฉด ๋ถ๋ชจ๊ฐ ์ง ๋๊ฐ ์์๋์ ์ฐพ์์ฌ ์ ์์
- ๊ทธ์น๋ง ์ ์ด๋ ๊ฒ ์ฐ๋์ง๋ ์ ์ ์๋ค..๐ค
- FM: Clearfix -
clear
Float
๋ก ์ธํด ๋ง๊ฐ์ง Layout์ ๊ณ ์น๊ธฐ ์ํด ์๊ธด Property

clear
๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ฒด ์์์ ์ธ๋ก ์์ญ์ ํ์
ํ ์ ์์
clear
๋ display๊ฐ block
์ธ ์์๋ค์๋ง ์ฌ์ฉ ๊ฐ๋ฅํจ
Clear
์ข
๋ฅ: left
| right
| both
left
: float: left;
๊ฐ ์์ ์๋ค๋ฉด ๊ทธ ์์น๋ฅผ ํ์
ํด์ ์ํฅ์ ๋ฐ์ง ์๊ฒ ๋ค๋ ๋ป
right
: float: right;
both
: ๋ ๋ค
clear
์ฌ์ฉ ๋ฐฉ๋ฒ
- ๋ถ๋ชจํํ
clear
๋ฅผ ์ฃผ์ด๋ ๋์ง๋ง, ๋ฒ์ฉํ ๋ฐ ์ฌ์ฌ์ฉ์ฑ์ ์ํด clearfix
๋ผ๋ ํด๋์ค๋ฅผ ์ฌ์ฉํด๋ ์ข์
.ํด๋์ค๋ช
::after {
content: "";
display: block;
clear: left | right | both;
}
๐ป4) Pseudo-Element (๊ฐ์ ์ ๋)
Float
๋ฅผ ์ํด HTML์ ์์์ ์์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๊ทธ๋ฅ ์ข์ ๋ฐฉ๋๊ฐ ์๋
- Pseudo-Element๋ฅผ ์ฌ์ฉํด๋ณด์
- CSS๋ก Fake ์์๋ฅผ ๋ง๋ค์ด์ clear ์ฃผ๊ธฐ
- ๊ฐ ์์ ๋น 2๊ฐ ์ฉ ๋ง๋ค ์ ์์
::before
, ::after
- Pesudo-Element๋?
- ์ ํ์์ ์ถ๊ฐํ๋ ํค์๋๋ก, ์ ํํ ์์์ ์ง์ ๋ ๋ถ๋ถ์ ์คํ์ผ์ ์
ํ ์ ์์
- ์ฌ์ฉ ์ ๋ฐ๋์
content
property ์์ฑํด์ผ ํจ
๐ป5) ์ฐธ๊ณ ์ฌํญ
- ๊ฐ์ ํ๊ทธ์ ๋ด์ฉ์ ํ๋ฒ์ ์์ ํ๊ณ ์ถ์ ๋์๋ ํ๊ทธ๋ฅผ ํด๋ฆญํ๊ณ ctrl+shift+L์ ๋๋ฌ์ฃผ์.
- CSS์์ ๊ทธ๋ฅ ํ๊ทธ ์ด๋ฆ์ ์ฐ์ง ๋ง๊ณ , class๋ฅผ ์ ์ธํด์ ์ฐ๋๋ก ํ์.
padding
๊ณผ margin
๊ตฌ๋ถ ์ ํ๊ธฐ.
padding
์ด๋ margin
์ด ๋จนํ์ง ์์ผ๋ฉด inline
๋ฐ์ค์ธ์ง ํ์ธํด๋ณด์.
- ํผ๊ทธ๋ง ๋ณด๋ฉด์ ๋งํฌ์
ํ๋ ์ฐ์ต์ ํด์ผ๊ฒ ๋ค. ๋์น ๋ถ๋ถ ๊ฝค ๋๋๋ฏ. ๊ผผ๊ผผํ ํ๊ธฐ.
margin
์ฌ์ฉ ์ top, bottom ํผ์ฉํ๋ ๊ฒ๋ณด๋ค ํ๋๋ง ์ ํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์.
strong
ํ๊ทธ๋ inline
์. margin
์ ๋จน์ผ๋๊น block
์ด๋ inline-block
์ผ๋ก ๋ณ๊ฒฝํด์ฃผ๊ธฐ
2. Position
๐ป1) Position
position
์ ์ฌ์ฉํ๋ ์ด์ ?
-> ์์๋ฅผ ์ํ๋ ์์น์ ์์ ๋กญ๊ฒ ์ด๋์ํค๊ธฐ ์ํด
position
์ข
๋ฅ
static
, relative
, absolute
, fixed
, sticky
sticky
๋ ์์ง ์ง์ํ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ง์ด ์์
- top or bottom / left or right: ํ๋์ฉ๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์.
๐ป2) Position์ ์ฌ์ฉํ ๋๋
- ์ด๋ค ์ข
๋ฅ์
Position
์ ์ฌ์ฉํ๋์ง
- ์ฌ์ฉํ๋
Position
์ ๋ฌด์์ ๊ธฐ์ค์ ๋๊ณ ์ฌ์ฉํ๋์ง ์ ์ํด์ผ ํ๋ค.
๐ป3) Position ์ข
๋ฅ
- static
- ๋ชจ๋ ์์์ ๊ธฐ๋ณธ ํฌ์ง์
๊ฐ
- ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ํ
- relative
- ๊ธฐ์ค์ : ์๊ธฐ ์์ ์ด ์๋ ์๋ ์๋ฆฌ
- ex)
top: 20px;
-> ์์ ์ top์ ๊ธฐ์ค์ผ๋ก 20px ์ด๋
- float์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ถ๋ชจ๋ฅผ ๋ ๋์ ๋ถ ๋ธ.
- but, Layout์ด ๋ถ๊ดด๋๊ฑฐ๋ ๋ค๋ฅธ ์์์ ์ํฅ์ ์ฃผ์ง ์์. ๋ถ๋ชจ, ํ์ ๊ฐ ์์ ์ ์์น๋ฅผ ๊ธฐ์ตํ๊ณ ์์.
- absolute
float
์ฌ์ฉํ ๋์ ๋น์ทํจ!
- ๋ถ๋ชจ๊ฐ absolute ์ฌ์ฉํ๋ ์์์ ์ง ๋๊ฐ ์์ ์ทจ๊ธํจ
- diplay๊ฐ
block
์ผ๋ก ์ ๋ถ ์์น
- ๊ทธ๋ฌ๋ ๊ธธ๋ง์ ํ์ง ๋ชปํ๋
block
..
- ๊ธฐ์ค์ : ์์ ์ด ๊ธฐ์ค์ผ๋ก ์ผ๊ณ ์ถ์ ๊ธฐ์ค์ ์ ์๋ก ์ ํ ์ ์์
position: static
์ด ์๋ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ก์ ์ ์์
postion: relative
์ธ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ก๋ ๊ฒ์ด ์ข๋ค
- fixed
- absolute๋ฅผ ์ฌ์ฉํ์ ๋ ๋์ผํ ํ์์ด ์ผ์ด๋จ
- ๋ค๋ฅธ ์ : ๊ธฐ์ค์ ์ด ๋ช
ํํจ => viewport
- viewport: ๋ธ๋ผ์ฐ์ ์ฐฝ์ ์ ์ฒด ํฌ๊ธฐ
๐ป4) z-index
- postion ๋ ์์๋ค์ ์์ง ๋ฐฉํฅ์ผ๋ก์์ ๋ ๋ฒจ์ ์๋ ค์ฃผ๋ property

๐ป5) ์ฐธ๊ณ ์ฌํญ
img
ํ๊ทธ๋ display: inline
์ด์ง๋ง width
, height
์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
ํ์ผ ์์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ฌ์ด์ฆ๊ฐ ์๊ธฐ ๋๋ฌธ์!
๋ฐ๋ผ์ ์ด๋ฏธ์ง ์ฌ์ด์ฆ๋ฅผ ๋ณ๊ฒฝํ ๋, display: block
์ผ๋ก ๋ฐ๊พธ์ด์ฃผ๋ฉด ๋ ๊น๋ํ๊ฒ ๋งํฌ์
ํ ์ ์๋คโจ
img
์ฌ์ด์ฆ๋ฅผ ๋ถ๋ชจ ์์์ ๋ง์ถ ๋, ์๋์ ๊ฐ์ด ํด์ฃผ๋ฉด ์ข๋ค.
img {
display: block;
width: 100%;
height: auto;
}
- ๋ฐ๋ณต์ ์ผ๋ก ์ฐ์ด๋ ์์๋ ๋ฌถ์ด์ ์ฐ๊ณ , ๋ค๋ฅธ ๋ถ๋ถ๋ง ํ๊ทธ๋ฅผ ๋ฐ๋ก ์จ์ฃผ๊ธฐ
transform
: ์ด๋ค ์์์ ๋ชจ์์ ๋ณํ์ํฌ ๋ ์ฌ์ฉํ๋ ํ๋กํผํฐ
ratate()
(ํ์ ), scale()
(๋ฐฐ์จ), translate();
(์์น ์ด๋)
translate
๋ ์๊ธฐ ์์ ์ด ๊ธฐ์ค
- ์ ๊ฐ์ด๋ฐ์ ์์น์ํฌ ๋ ํ์ํ ํ๋กํผํฐ์
#prev,
#next {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
position: fixed;
๋ฅผ ์ฌ์ฉํ๋ฉด ์ปจํ
์ธ ํฌ๊ธฐ๋งํผ๋ง width๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
3. Flexbox
๐ป1) Flexbox ์ฌ์ฉ ๋ฐฉ๋ฒ
.flexbox {
display: flex | inline-flex;
flex-direction: row | row-reverse | column | column-reverse
flex-wrap: nowrap | wrap;
}
- ๋ ํ๋ ์ค๋ฐ์ค ์ธ๊ฑฐ์
- flex๋ block๊ณผ ๋น์ทํ์ง๋ง block์ ํ ์ ์๊ณ ์์๋ฅผ ์ฝ๊ฒ ์ ๋ ฌํ ์ ์์
- inline-flex: inline-block๊ณผ ๋น์ทํ์ง๋ง ์์ ๋์ผ
- ์ ์ธ์ ๋๊ตฌํํ
? ์ ๋ ฌํ๊ณ ์ํ๋ ์์๋ฅผ ์ง๋๊ณ ์๋ ๋ถ๋ชจ์๊ฒ๐
- ๊ฐ๋ก ์ ๋ ฌ? ์ธ๋ก ์ ๋ ฌ?
- ๋ฐฉํฅ ์ ํด์ค์ผ ํจ
- flex๋ฅผ ํ๊ฒ ๋๋ฉด ์ฐ๋ฆฌ ๋์ ๋ณด์ด์ง ์๋ 2๊ฐ์ Axis(์ถ) ์๊น
- Main axis(flex-direction ๋ฐฉํฅ๋๋ก ์๊น), Cross axis(Main axis์ ์์ง)
row
๋ฅผ ์ฃผ๋ฉด main: ์ผ->์ค | cross: ์->์๋
row-reverse
๋ฅผ ์ฃผ๋ฉด main: ์ค->์ผ | cross: ์->์๋
column-reverse
๋ฅผ ์ฃผ๋ฉด main: ์๋->์ | main: ์ผ->์ค
- ๋ฌด์กฐ๊ฑด ํ ์ค ์์ ๋ค ์ ๋ ฌ?
flex-wrap: nowrap
: ๊ฐ์ธ์ง ์๊ณ ์์์ ์ฌ์ด์ฆ๋ฅผ ์ค์ฌ์๋ผ๋ ํ ์ค๋ก ์ ๋ ฌํด๋ฒ๋ฆผ
flex-wrap: wrap
: ํ ์ค์ ๋ชจ๋ ์ ๋ ฌํ๊ธฐ์ ๊ณต๊ฐ์ด ๋๋ํ์ง ์์ผ๋ฉด ์ฌ๋ฌ ์ค๋ก ๋ง๋ค์ด๋ฒ๋ฆผ
- ์ฌ๋๋ ํ๋ ์ค๋ฐ์ค party time!๐คธโโ๏ธ๐คธโโ๏ธ
- ์ํ๋ ๋๋ก ์ ๋ ฌํ๊ธฐ
๐ป2) Main axis & Cross axis
- Main axis๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ณ ์ถ์ ๋๋
justify-content
์ฌ์ฉ
justify-content: flex-start
-> ์ผ์ชฝ์์๋ถํฐ ์ ๋ ฌ ์์
justify-content: center
-> ๊ฐ์ด๋ฐ ์ ๋ ฌ
justify-content: space-between
-> ์์ ์ฌ์ด์ ๊ฐ๊ฒฉ์ ๊ฐ๊ฒ ํด์ค
- Cross axis๋
aline-items
๋ align-content
์ฌ์ฉ
aline-items: center
-> ์ธ๋ก์ถ ๊ฐ์ด๋ฐ ์ ๋ ฌ
aline-items
๋ ํ๋์ flexline์ ํ๋ฅด๋ cross axis ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
align-content
๋ flex-wrap: wrap
์ด์ด์ผ ํจ
flex-wrap: wrap
์ ํ๊ฒ ๋๋ฉด flexline์ด ์ฌ๋ฌ ๊ฐ๊ฐ ์๊ธธ ์ ์์
align-content
๋ ์ ์ฒด ํฐ ์ถ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
align-content: space-between
์ฌ์ฉ ๊ฐ๋ฅ
- ์ฌ์ฉ ์์ ์
aline-items
ํ align-content
ํด๋ณด๊ธฐ๐คฃ
๐ป3) order
- flexbox๋ฅผ ์ฐ๊ฒ ๋๋ฉด ์ฌ์ฉ ์์๋ฅผ ์ ๋ฆฌํ ์ ์์๐๐
order: 1;
๐ป4) ์ฐธ๊ณ ์ฌํญ
- flex๋ฅผ ์ฐ๊ฒ ๋๋ฉด ์ํ์ง ์๋๋ฐ ์์ ์์์ width ๊ฐ๊ฒฉ์ด ์ข์์ง ์ ์๋ค.
-> width: 100%;
์ฌ์ฉํ๋ฉด ์๋๋๋ก ๋จ
๐ ์งง์ ํ๊ธฐ
- ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์
justify-content: center
๋, aline-items
๋ฅผ ์๋ฏธ๋ ๋ชจ๋ฅด๊ณ ์ฌ์ฉํ ์ ์ด ๊ต์ฅํ ๋ง์๋ฐ (๊ทธ๋ฌ๋ฉด์ ์ ๋จนํ์ ๋นํฉํ ์ ๋ ํ ๋๋ฒ์ด ์๋๋ค..ใ
ใ
) ๋ช
๋ฃํ๊ฒ ์ ์ ์์๋ค. ์ด ๊ฐ์.. ๋ ๋ง์ ๋ค์ด๐๐
- ์์ง ๋ช
ํํ๊ฒ float, position, flex๋ฅผ ์๋ค๊ณ ์๋ถํ ์๋ ์์ ๊ฑฐ ๊ฐ๋ค. ๋ค๋ฅธ ์์ ๋ค์ ๋งํฌ์
ํ๋ฉด์ ๋ด ๊ฑธ๋ก ๋ง๋๋ ์ฐ์ต์ ํด๋ด์ผ ํ ๊ฒ ๊ฐ๋ค. flex ์์ฃผ๋ก!