็ก์
float ์์ฑ ๋ณธ๋ฌธ
๐ขโ float
์์๋ฅผ ์ผ์ชฝ ๋๋ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ฐ์ด๋ด๊ณ , ๋ค๋ฅธ ์์๋ค์ด ๊ทธ ์ฃผ๋ณ์ ํ๋ฅด๊ฒ ํ๋ ์์ฑ.
๐น float
selector {
float: left | right | none | inline-start | inline-end;
}
- left: ์์๋ฅผ ์ผ์ชฝ์ผ๋ก ์ด๋.
- right: ์์๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋.
- none: ์์๋ฅผ ๋์ฐ์ง ์๋๋ค. (๊ธฐ๋ณธ๊ฐ)
- inline-start: ๊ธ์ฐ๊ธฐ ๋ฐฉํฅ ๊ธฐ์ค ์์ ์ชฝ.
- inline-end: ๊ธ์ฐ๊ธฐ ๋ฐฉํฅ ๊ธฐ์ค ๋ ์ชฝ.
โ ๏ธ float ๋ถ์์ฉ โ ๏ธ
1๏ธโฃ ๋ถ๋ชจ ์์ ๋์ด๊ฐ ์ฌ๋ผ์ง (collapse)
- ์์ ์์์ float๋ฅผ ์ฃผ๋ฉด ๋ถ๋ชจ ์์๋ ์์ ์์๋ฅผ ์ผ๋ฐ ํ๋ฆ์์ ์ ์ธ๋ ๊ฒ์ฒ๋ผ ์ธ์ํ๋ค.
โ2๏ธโฃ ๋ ์ด์์ ๊นจ์ง
- float ์์๊ฐ ์์๊ณผ ๋ค๋ฅด๊ฒ ๋ฐฐ์น๋๋ค.
- ๋ค์ ์์๊ฐ float ์์ผ๋ก ๋ถ์ด๋ฒ๋ฆฐ๋ค.
3๏ธโฃโ ์ดํ ์์ ๊ฒน์นจ ๋ฌธ์
- float๋ ์์ ์๋์ ์์ด์ผ ํ ์์๊ฐ ์์ผ๋ก ์ฌ๋ผ์จ๋ค.
๐งน ํด๊ฒฐ ๋ฐฉ๋ฒ: Clearing ๐งน
1๏ธโฃ clear ์์ฑ ์ฌ์ฉ
float ์์์ ์ํฅ์ ๋ฐ์ง ์๋๋ก ๋ฐฐ์น๋ฅผ ์ ๋ฆฌํ๋ ๋ฐฉ๋ฒ.
.next {
clear: both;
}
- ์ง์ ํ ๋ฐฉํฅ์ float ์์ ์์ ๋ฐฐ์น๋์ง ์๋๋ก ๋ง๋ ์์ฑ.
- clear: left; (์ผ์ชฝ float ์์๋ฅผ ํผํจ)
- clear: right; (์ค๋ฅธ์ชฝ float ์์๋ฅผ ํผํจ)
- clear: both; (์์ชฝ float ๋ชจ๋ ํผํจ - ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ)
2๏ธโฃ clearfix ๊ธฐ๋ฒ (๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ)
๋ถ๋ชจ ์์๊ฐ float ์์์ ํฌํจํ๋๋ก ๋ง๋๋ ๋ฐฉ๋ฒ.
.parent::after {
content: "";
display: block;
clear: both;
}
- ํต์ฌ: ๊ฐ์์ ์์๋ฅผ ๋ง๋ค์ด clear ์ ์ฉ.
3๏ธโฃ overflow ํ์ฉ (๊ฐ๋จํ์ง๋ง ์ฃผ์ ํ์)
๋ถ๋ชจ ์์๊ฐ Block Formatting Context(BFC) ๋ฅผ ์์ฑํ์ฌ float ์์๋ฅผ ๋ด๋ถ์ ํฌํจํ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ.
.parent {
overflow: hidden;
}
- ๋จ์ : ์ฝํ ์ธ ๊ฐ ๋ถ๋ชจ ์์ญ์ ๋์ผ๋ฉด ์๋ฆผ, ์คํฌ๋กค ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ.
4๏ธโฃ Flexbox / Grid ์ฌ์ฉ (์ต์ ๋ฐฉ๋ฒ: ์ถ์ฒ)
float ๋์ Flexbox ๋๋ Grid ๋ ์ด์์์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ์์ฒด๋ฅผ ํํผํ๋ ๋ฐฉ๋ฒ.
.parent {
display: flex;
}
- float์ ์๋ ๋ฌธ์ ํ๋ฆ์์ ์์๋ฅผ ๋นผ๋ฒ๋ฆฌ๋ ๋ฐฉ์์ด์ง๋ง, ๋ฐ๋ฉด Flexbox / Grid๋ ๋ ์ด์์์ ์ํ ์ ์ฉ ์์คํ
.
(์ ์์ ์ธ ํ๋ฆ ์ ์ง)
๐ ์ฆ, float์ ๊ตฌ์กฐ์ ํ๊ณ๋ฅผ ์์ ์ฌ์ฉํ์ง ์์
๐โ POINT ๐โ
โ๏ธ ์ ์ฒด ๋ ์ด์์์ ์ก์ ๋ float ๋ณด๋ค๋ Flexbox๋ Grid๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํ์ค์ด๋ค. โ๏ธ
โ๏ธ ์ ๋ฌธ ๊ธฐ์ฌ ์คํ์ผ ๊ฐ์ ์ฌ์ง ์์ผ๋ก ๊ธ์๊ฐ ํ๋ฅด๊ฒ ํด์ผ ํ๋ ๋์์ธ์์๋ float ์ด ์ ์ฉํ๋ค. โ๏ธ
โ๏ธ float ์ ์ผ๋ค๋ฉด ๋ฐ๋์ clear ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ค. โ๏ธ
๐ float vs flexbox vs grid ๐
| ํน์ฑ | float | flexbox | grid |
| ์ฃผ ๋ชฉ์ | ํ ์คํธ ํ๋ฆ ์ ์ด | 1์ฐจ์ ์ ๋ ฌ (ํ/์ด) | 2์ฐจ์ ๊ฒฉ์ ๋ ์ด์์ |
| ๋ ์ด์์ ๋ฐฉ์ | ๋ฌธ์ ํ๋ฆ์์ ์ดํ | ์ ์ ํ๋ฆ ์ ์ง | ๋ช ์์ ๊ฒฉ์ ๋ฐฐ์น |
| ๋์ด๋ | ๋์ (ํด์ ์์ ํ์) | ๋ฎ์ ~ ๋ณดํต | ๋ณดํต |
| ์ฌ์ฉ ์์ | ์ด๋ฏธ์ง + ํ ์คํธ ๋ฐฐ์น | UI ์ปดํฌ๋ํธ (๋ฉ๋ด, ์นด๋) | ์ ์ฒด ํ์ด์ง ์ค๊ณ |
โ๏ธ ์ค์ ์์ ์ฝ๋: ํ ์คํธ ๊ฐ์ธ๊ธฐ โ๏ธ
<style>
.float-img {
float: left; /* ์ด๋ฏธ์ง๋ฅผ ์ผ์ชฝ์ผ๋ก ๋์ */
width: 150px;
margin-right: 20px;
margin-bottom: 10px;
}
.container {
border: 1px solid #ccc;
padding: 10px;
}
/* ๋ถ๋ชจ ์์ ๋์ด ์์ค ๋ฐฉ์ง */
.container::after {
content: "";
display: block;
clear: both;
}
</style>
<div class="container">
<img src="flower.jpg" alt="๊ฝ" class="float-img">
<p>์ด ํ
์คํธ๋ ์ด๋ฏธ์ง์ ์ค๋ฅธ์ชฝ ๊ณต๊ฐ์ ์ฑ์ฐ๋ฉฐ ์์ฐ์ค๋ฝ๊ฒ ํ๋ฆ
๋๋ค.
ํ๋กํ
๋ ์์๋ ๋ง์น ์๋ฉด์ ๋ฌ ์ข
์ด๋ฐฐ์ฒ๋ผ ๋์ํ๋ฉฐ,
์ฃผ๋ณ์ ์ธ๋ผ์ธ ์์๋ค์ ๊ทธ ๊ณต๊ฐ์ ํผํด ๋ฐฐ์น๋ฉ๋๋ค.</p>
</div>
'<style>' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| background ์์ฑ (0) | 2026.03.20 |
|---|---|
| CSS์ Position ์์ฑ (0) | 2026.03.19 |
| display ์์ฑ (0) | 2026.03.19 |
| Box Model์ padding ์์ฑ (0) | 2026.03.18 |
| Box Model์ margins ์์ฑ (0) | 2026.03.18 |