Published on

CSS에서 float을 해제하는 방법들

Authors
  • avatar
    Name
    Inhwan Cho
    Twitter

CSS의 float 속성은 요소를 왼쪽이나 오른쪽으로 흐르게 하여 텍스트와 이미지가 그 주변을 둘러싸게 합니다.

하지만 떠 있는(floating) 요소들을 자식 엘리먼트에 사용하게 되면 부모 엘리먼트가 자식의 높이를 감지할 수 없기 때문에 이를 반영하기 위한 방법이 필요합니다.

본문에서는 float을 해제하는 몇 가지 방법을 알아보고, 각각의 장단점을 비교해 보겠습니다.

1. Clear 속성 사용하기

clear 속성은 float 속성이 적용된 요소 다음에 오는 요소에 적용될 수 있으며, 해당 요소가 float된 요소의 영향을 받지 않게 합니다.

예시:

<div style="float: left;">이것은 Float된 요소입니다.</div>
<div style="clear: both;">이것은 Clear된 요소입니다.</div>

clear 속성은 left, right, both 값을 가질 수 있으며, 이는 각각 왼쪽, 오른쪽 혹은 양쪽 방향의 float을 해제합니다.

2. Overflow 속성 사용하기

부모 요소에 overflow: auto 또는 overflow: hidden을 적용하는 것도 float을 해제하는 방법 중 하나입니다.

이 방법은 부모 요소가 float된 자식들을 "감싸는" 효과를 가집니다.

예시:

<div style="overflow: auto;">
  <div style="float: left;">Float된 요소입니다.</div>
</div>

부모 요소에 overflow 속성을 적용하면, 부모 요소는 자식 요소들이 차지하는 공간을 인식하게 되어, 올바른 높이값을 가지게 됩니다.

3. 가상 요소를 이용한 clearfix 해법

가장 널리 사용되는 해법 중 하나로, 가상 요소를 이용하여 float을 해제할 수 있습니다.

이 방법은 clearfix라고 불리며, 특히 여러 float된 요소를 포함하는 부모 요소에 유용합니다.

예시:

.clearfix::after {
  content: "";
  display: table; /* 다른것도 가능 ex)block */
  clear: both;
}
<div class="clearfix">
  <div style="float: left;">Float된 요소입니다.</div>
  <div style="float: right;">Float된 또 다른 요소입니다.</div>
</div>

clearfix 클래스를 부모 요소에 적용하면, 가상 요소가 float된 요소들 뒤에서 "clear" 역할을 수행합니다.

비교 표

방법설명장점단점
clear 속성다음 요소가 float된 요소를 피하도록 합니다.쉽게 사용할 수 있음특정 요소에만 적용 가능
overflow 속성부모 요소가 float된 자식들을 감쌀 수 있도록 합니다.float된 요소들을 한번에 해결overflow에 따른 부작용이 있을 수 있음
clearfix가상 요소를 이용해 부모 요소 내 float를 해제합니다.다수의 float된 요소에 효과적추가 CSS가 필요

CSS에서 float을 해제하는 방법들에 대해 알아보았습니다. 프로젝트의 요구 사항과 구조에 따라 적합한 방법을 선택하는 것이 중요합니다.