프로그래밍/css 기초

CSS 심화 공부(1) - Float CSS, Clear CSS

lamarcK 2025. 3. 11. 14:30

문서를 작성하다 보면 글의 왼쪽이나 오른쪽에 이미지가 오도록해서 글의 이해를 돕는 경우가 있다.

 

 

웹페이지도 마찬가지 인데 이런 기능을 구현하는 방법이 바로 float 속성이다. 최근에는 flexbox나 grid와 같은 더 강력하고 유연한 레이아웃 도구들이 등장하면서 사용 빈도가 줄어들고 있지만 여전히 특정 상황에서는 유용하게 사용이 가능하다.


HTML

<body>
  <div class="container">
  <img src="cat.jpeg" alt="고양이" class="float-left">
  <p>
    이것은 이미지와 함께 float 속성을 사용한 예시입니다. 이미지는 왼쪽에 위치하며, 텍스트는 이미지 주변을 감싸듯이 배치됩니다. 
    float 속성은 웹 페이지 레이아웃을 구성하는 데 유용하게 사용될 수 있습니다.
  </p>
  </div>
  </body>

 

CSS

.container {
  width: 500px; /* 컨테이너 너비 설정 */
  border: 0px solid #ccc; /* 컨테이너 테두리 설정 */
  padding: 10px; /* 컨테이너 내부 여백 설정 */
}

.float-left {
  float: left; /* 이미지를 왼쪽으로 띄움 */
  margin-right: 10px; /* 이미지 오른쪽 여백 설정 */
  max-width: 50%;
}


하지만 이렇게 float은 의도치 않게 다른 내용의 흐름에 개입하게 되는 경우가 있다.

<body>
  <div class="container">
  <img src="cat.jpeg" alt="고양이" class="float-left">
  <p>
    이것은 이미지와 함께 float 속성을 사용한 예시입니다. 이미지는 왼쪽에 위치하며, 텍스트는 이미지 주변을 감싸듯이 배치됩니다. 
    float 속성은 웹 페이지 레이아웃을 구성하는 데 유용하게 사용될 수 있습니다.
  </p>
  <p style="color: red;">
    여기 부터는 다른 글에 대한 설명입니다.
  </p>
  </div>
  </body>

 

이렇게 다른 내용을 품고 있는 글임에도 float 속성의 영향을 받아서 레이아웃이 의도치 않은 방식으로 표현될 때가 있다.

 

이런 문제를 해결하기 위해서 사용하는 속성이 바로 clear 속성이다.

<body>
  <div class="container">
  <img src="cat.jpeg" alt="고양이" class="float-left">
  <p>
    이것은 이미지와 함께 float 속성을 사용한 예시입니다. 이미지는 왼쪽에 위치하며, 텍스트는 이미지 주변을 감싸듯이 배치됩니다. 
    float 속성은 웹 페이지 레이아웃을 구성하는 데 유용하게 사용될 수 있습니다.
  </p>
  <p class="clear" style="color: red;">
    여기 부터는 다른 글에 대한 설명입니다.
  </p>
  </div>
  </body>
.container {
  width: 500px; /* 컨테이너 너비 설정 */
  border: 0px solid #ccc; /* 컨테이너 테두리 설정 */
  padding: 10px; /* 컨테이너 내부 여백 설정 */
}

.float-left {
  float: left; /* 이미지를 왼쪽으로 띄움 */
  margin-right: 10px; /* 이미지 오른쪽 여백 설정 */
  max-width: 50%;
}

.clear {
  clear: left; /* 또는 clear: both; */
}

 

이렇게 css 상에서 clear 속성을 사용해서 left의 영향력을 없애면

이처럼 정상적으로 내용이 표시되는 것을 볼 수 있다.

(만약에 clear: right로 설정한다면 left의 영향을 그대로 받아서 기존과 같은 방식으로 표현되게 된다)


clear 속성의 값은 다음과 같다.

  • left: 요소의 왼쪽에는 float된 요소가 없어야 합니다.
  • right: 요소의 오른쪽에는 float된 요소가 없어야 합니다.
  • both: 요소의 양쪽에는 float된 요소가 없어야 합니다.
  • none: float된 요소의 영향을 받습니다. (기본값)

만약에 float의 영향을 아예 안받게 하고 싶다면 both를 사용하면 된다.


좀 더 내용을 심화해서 이미지 2개를 양옆에 배치한 다음 clear로 영향력을 없애서 내용이 float의 영향을 받지 않도록 할 수도 있다.

<body>
  <div class="container">
  <img src="cat.jpeg" alt="고양이" class="float-left">
  <img src="cat.jpeg" alt="고양이" class="float-right">
  <p>
    이것은 이미지와 함께 float 속성을 사용한 예시입니다. 이미지는 왼쪽에 위치하며, 텍스트는 이미지 주변을 감싸듯이 배치됩니다. 
    float 속성은 웹 페이지 레이아웃을 구성하는 데 유용하게 사용될 수 있습니다.
  </p>
  <p class="clear" style="color: red;">
    여기 부터는 다른 글에 대한 설명입니다.
  </p>
  </div>
  </body>
.container {
  width: 1000px; /* 컨테이너 너비 설정 */
  border: 0px solid #ccc; /* 컨테이너 테두리 설정 */
  padding: 10px; /* 컨테이너 내부 여백 설정 */
}

.float-left {
  float: left; /* 이미지를 왼쪽으로 띄움 */
  margin-right: 10px; /* 이미지 오른쪽 여백 설정 */
  max-width: 30%;
}
.float-right {
  float: right; /* 이미지를 오른쪽으로 띄움 */
  margin-left :10px; /* 이미지 오른쪽 여백 설정 */
  max-width: 30%;
}
.clear {
  clear: both; /* 또는 clear: both; */
}