CSS(float) 정리

seokhyeon_k·2025년 2월 25일

CSS float 정리

CSS의 float 속성은 요소를 좌우로 배치하여 텍스트나 다른 요소가 주위를 감싸도록 하는 레이아웃 방법 중 하나다. 원래는 이미지와 텍스트를 함께 배치하는 용도로 만들어졌지만, 과거에는 전체 레이아웃을 구성하는 데도 자주 사용되었다. 현재는 flexboxgrid를 주로 사용하지만, float의 동작 방식과 활용법을 알고 있으면 유용할 때가 많다.


1. float 속성이란?

float 속성은 요소를 일반적인 문서 흐름에서 제거하고, 왼쪽(left) 또는 오른쪽(right)으로 배치하여 텍스트나 다른 인라인 요소가 주위를 감싸도록 만든다.

1.1 float 속성 값

설명
none (기본값)요소를 띄우지 않음
left요소를 왼쪽으로 띄움
right요소를 오른쪽으로 띄움
inherit부모 요소의 float 값을 상속

1.2 float 사용 예제

<img src="image.jpg" class="float-left">
<p>이 문장은 이미지 주위를 감싸게 됩니다.</p>
.float-left {
  float: left;
  margin-right: 10px;
}

📌 결과: 이미지가 왼쪽으로 배치되며, 텍스트가 오른쪽에서 감싸는 형태가 됩니다.


2. float의 문제점

float을 사용할 때 몇 가지 문제점이 발생할 수 있다.

2.1 부모 요소가 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의 높이를 인식하지 못하여 배경색이 적용되지 않음.


3. float 문제 해결 방법

3.1 clearfix 기법 사용

부모 요소가 float된 자식을 감싸도록 하는 방법 중 가장 널리 사용되는 방법이다.

.clearfix::after {
  content: "";
  display: block;
  clear: both;
}
<div class="container clearfix">
  <div class="float-box">내용</div>
</div>

📌 결과: 부모 요소가 자식 요소의 높이를 정상적으로 인식하게 됨.

3.2 overflow: hidden; 사용

또 다른 해결 방법은 overflow: hidden;을 사용하는 것이다.

.container {
  overflow: hidden;
}

📌 주의점: 이 방법은 내부 요소가 position: absolute;인 경우 의도치 않은 동작을 할 수도 있음.


4. float 활용 예제

4.1 이미지와 텍스트 배치

<img src="image.jpg" class="float-right">
<p>이 텍스트는 이미지 왼쪽에서 감싸집니다.</p>
.float-right {
  float: right;
  margin-left: 10px;
}

📌 결과: 이미지가 오른쪽으로 배치되고 텍스트가 왼쪽에서 감쌈.

4.2 간단한 레이아웃 만들기

<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;
}

📌 결과: 두 개의 박스가 각각 좌우로 정렬됨.


5. float vs flexbox vs grid

5.1 언제 float을 사용할까?

✅ 이미지와 텍스트를 감싸는 경우
✅ 기존 코드가 float으로 작성되어 있고, 수정이 어려운 경우
✅ 간단한 요소 배치를 위한 용도로 사용

하지만 새로운 프로젝트에서는 flexboxgrid를 사용하는 것이 더 효율적이다.

5.2 float vs flexbox

비교 항목floatflexbox
주 용도텍스트와 이미지 배치복잡한 레이아웃 구성
요소 정렬어려움간단하게 정렬 가능
반응형 지원추가 작업 필요유연한 레이아웃 제공

5.3 float vs grid

비교 항목floatgrid
주 용도간단한 배치복잡한 2D 레이아웃
행과 열 관리어렵다강력한 레이아웃 시스템 제공

6. 결론

  • float이미지와 텍스트를 감싸는 용도로 사용하는 것이 적절하다.
  • 전체적인 레이아웃을 구성할 때는 flexbox 또는 grid가 더 좋은 선택이다.
  • 기존 float 기반 레이아웃을 유지해야 한다면 clearfix 또는 overflow: hidden; 기법을 활용하면 된다.
profile
프론트엔드 공부중입니다

0개의 댓글