float 정리CSS의 float 속성은 요소를 좌우로 배치하여 텍스트나 다른 요소가 주위를 감싸도록 하는 레이아웃 방법 중 하나다. 원래는 이미지와 텍스트를 함께 배치하는 용도로 만들어졌지만, 과거에는 전체 레이아웃을 구성하는 데도 자주 사용되었다. 현재는 flexbox나 grid를 주로 사용하지만, float의 동작 방식과 활용법을 알고 있으면 유용할 때가 많다.
float 속성이란?float 속성은 요소를 일반적인 문서 흐름에서 제거하고, 왼쪽(left) 또는 오른쪽(right)으로 배치하여 텍스트나 다른 인라인 요소가 주위를 감싸도록 만든다.
float 속성 값| 값 | 설명 |
|---|---|
none (기본값) | 요소를 띄우지 않음 |
left | 요소를 왼쪽으로 띄움 |
right | 요소를 오른쪽으로 띄움 |
inherit | 부모 요소의 float 값을 상속 |
float 사용 예제<img src="image.jpg" class="float-left">
<p>이 문장은 이미지 주위를 감싸게 됩니다.</p>
.float-left {
float: left;
margin-right: 10px;
}
📌 결과: 이미지가 왼쪽으로 배치되며, 텍스트가 오른쪽에서 감싸는 형태가 됩니다.
float의 문제점float을 사용할 때 몇 가지 문제점이 발생할 수 있다.
float된 자식을 감싸지 못하는 문제float 속성을 적용하면, 부모 요소가 float된 자식 요소의 높이를 인식하지 못하는 문제가 발생할 수 있다.
<div class="container">
<div class="float-box">내용</div>
</div>
.container {
background: lightgray;
}
.float-box {
float: left;
width: 100px;
height: 100px;
background: blue;
}
📌 결과: .container는 .float-box의 높이를 인식하지 못하여 배경색이 적용되지 않음.
float 문제 해결 방법clearfix 기법 사용부모 요소가 float된 자식을 감싸도록 하는 방법 중 가장 널리 사용되는 방법이다.
.clearfix::after {
content: "";
display: block;
clear: both;
}
<div class="container clearfix">
<div class="float-box">내용</div>
</div>
📌 결과: 부모 요소가 자식 요소의 높이를 정상적으로 인식하게 됨.
overflow: hidden; 사용또 다른 해결 방법은 overflow: hidden;을 사용하는 것이다.
.container {
overflow: hidden;
}
📌 주의점: 이 방법은 내부 요소가 position: absolute;인 경우 의도치 않은 동작을 할 수도 있음.
float 활용 예제<img src="image.jpg" class="float-right">
<p>이 텍스트는 이미지 왼쪽에서 감싸집니다.</p>
.float-right {
float: right;
margin-left: 10px;
}
📌 결과: 이미지가 오른쪽으로 배치되고 텍스트가 왼쪽에서 감쌈.
<div class="column left">왼쪽</div>
<div class="column right">오른쪽</div>
.column {
width: 50%;
height: 100px;
}
.left {
float: left;
background: lightblue;
}
.right {
float: right;
background: lightcoral;
}
📌 결과: 두 개의 박스가 각각 좌우로 정렬됨.
float vs flexbox vs gridfloat을 사용할까?✅ 이미지와 텍스트를 감싸는 경우
✅ 기존 코드가 float으로 작성되어 있고, 수정이 어려운 경우
✅ 간단한 요소 배치를 위한 용도로 사용
하지만 새로운 프로젝트에서는 flexbox나 grid를 사용하는 것이 더 효율적이다.
float vs flexbox| 비교 항목 | float | flexbox |
|---|---|---|
| 주 용도 | 텍스트와 이미지 배치 | 복잡한 레이아웃 구성 |
| 요소 정렬 | 어려움 | 간단하게 정렬 가능 |
| 반응형 지원 | 추가 작업 필요 | 유연한 레이아웃 제공 |
float vs grid| 비교 항목 | float | grid |
|---|---|---|
| 주 용도 | 간단한 배치 | 복잡한 2D 레이아웃 |
| 행과 열 관리 | 어렵다 | 강력한 레이아웃 시스템 제공 |
float은 이미지와 텍스트를 감싸는 용도로 사용하는 것이 적절하다.flexbox 또는 grid가 더 좋은 선택이다.float 기반 레이아웃을 유지해야 한다면 clearfix 또는 overflow: hidden; 기법을 활용하면 된다.