Computer >> 컴퓨터 >  >> 프로그래밍 >> CSS

CSS float 속성 완벽 정리 – 요소를 좌우로 띄워 배치하는 방법

CSS의 float(부동) 속성은 박스나 콘텐츠를 배치하고 서식을 지정할 때 사용하는 대표적인 위치 지정 도구입니다. 이 속성을 활용하면 요소를 컨테이너의 왼쪽 또는 오른쪽으로 띄워 배치할 수 있으며, 이미지 주변으로 텍스트가 흐르게 만드는 등 다양한 레이아웃 구성에 활용됩니다.

float 속성의 주요 값

float 속성에는 다음 네 가지 값을 지정할 수 있습니다.

  • left − 요소가 컨테이너의 왼쪽으로 떠다닙니다.
  • right − 요소가 컨테이너의 오른쪽으로 떠다닙니다.
  • none − 요소가 떠다니지 않습니다. (기본값)
  • inherit − 부모 요소의 float 값을 그대로 상속받습니다.

예제

다음은 CSS float 속성을 실제로 적용한 예제입니다. 버튼을 클릭하면 색상 블록이 하나씩 왼쪽 또는 오른쪽 영역으로 이동하면서 float가 적용되는 과정을 눈으로 확인할 수 있습니다.

<!DOCTYPE html>
<html>
<head>
<title>CSS Float</title>
<style>
form {
   width:70%;
   margin: 0 auto;
   text-align: center;
}
input[type="button"] {
   border-radius: 10px;
}
#container {
   display: flex;
   flex-direction: column-reverse;
   justify-content: center;
   align-items: center;
}
.child{
   height: 40px;
   width: 40px;
   color: white;
   border: 4px solid black;
}
.orange{
   background-color: #FF8A00;
}
.red{
   background-color: #F44336;
}
.violet{
   background-color: #C303C3;
}
.green{
   background-color: #4CAF50;
}
.blue{
   background-color: #03A9F4;
}
.yellow{
   background-color: #FEDC11;
}
#left{
   display: flex;
   float: left;
}
#right{
   display: flex;
   float: right;
}
</style>
</head>
<body>
<form>
<fieldset>
<legend>CSS-Float</legend>
<div id="container">
<div class="child orange"></div><div class="child red"></div><div class="child violet"></div><div class="child green"></div><div class="child blue"></div><div class="child yellow"></div>
</div><br>
<input type="button" value="float-->left" onclick="floatDecider('left')">
<input type="button" value="float-->right" onclick="floatDecider('right')">
<div><div id="left"></div><div id="right"></div></div>
</fieldset>
</form>
<script>
   var left = document.getElementById('left');
   var right = document.getElementById('right');
   function floatDecider(direction){
      var allChildren = document.getElementsByClassName('child');
      if(direction === 'left')
         left.insertAdjacentElement('beforeend',allChildren[0]);
      else
         right.insertAdjacentElement('afterbegin',allChildren[0]);
   }
</script>
</body>
</html>

실행 결과

위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.

버튼을 클릭하기 전 − 여섯 개의 색상 블록이 세로 방향으로 정렬되어 표시됩니다.

CSS float 속성 완벽 정리 – 요소를 좌우로 띄워 배치하는 방법

‘float-->left’ 버튼을 4번 클릭한 후 − 앞쪽 네 개의 블록이 차례대로 왼쪽으로 띄워져 가로 방향으로 배치됩니다.

CSS float 속성 완벽 정리 – 요소를 좌우로 띄워 배치하는 방법

‘float-->right’ 버튼을 클릭한 후 − 남은 블록들이 오른쪽으로 띄워져 배치되는 것을 확인할 수 있습니다.

CSS float 속성 완벽 정리 – 요소를 좌우로 띄워 배치하는 방법

참고: float 사용 시 유의할 점

float가 적용된 요소는 일반 문서 흐름에서 벗어나기 때문에, 부모 요소의 높이가 무너지는 현상이 발생할 수 있습니다. 이때는 clear 속성이나 clearfix 기법을 활용해 레이아웃을 정리해 주어야 합니다.

또한 float는 원래 텍스트와 이미지를 함께 배치하기 위한 목적으로 만들어진 속성입니다. 과거에는 전체 페이지 레이아웃을 잡는 데 널리 사용되었지만, 최근에는 Flexbox나 CSS Grid처럼 더 강력하고 직관적인 레이아웃 기법이 표준화되어 복잡한 배치 작업에는 이들을 사용하는 것이 권장됩니다. float는 여전히 이미지 주변으로 텍스트가 자연스럽게 흐르도록 만드는 용도로 유용하게 활용할 수 있습니다.