Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

Leeyanggoo

[CSS] 레이아웃의 속성! float와 clear를 알아보자!! 본문

2023/CSS

[CSS] 레이아웃의 속성! float와 clear를 알아보자!!

Leeyanggoo 2023. 2. 25. 17:23

이전 HTML에서 배웠던 블록 레벨 요소(Block-level elements)와 인라인 요소(Inline elements) 기억하시나요?

웹 페이지의 레이아웃을 구성하는 'float'는 세로로 나열되는 블록 요소를 가로로 배치할 수 있게 해주는 CSS 속성입니다.

또한 'clear'는 float 속성을 제거하고 다시 원래대로 되돌리는 CSS의 속성입니다.

이 두 가지 속성을 이용해 레이아웃을 요소를 구성하는 방법을 알아보겠습니다!


float

 

float 속성은 요소를 왼쪽이나 오른쪽으로 부유시켜 그 주변의 요소와의 관계를 설정합니다.

부유(floating)된 요소는 그 위치를 기준으로 다른 요소가 배치되며, 주변 요소들은 부유한 요소의 높이를 인식하지 못하게 됩니다.

float는 'left'와 'right' 두 가지 속성 값을 가지고 있습니다.

 

속성 값 속성 설명
float: left 요소를 왼쪽에 배치하고 나머지 콘텐츠는 그 주변을 흐르도록 함
float: right 요소를 오른쪽에 배치하고 나머지 콘텐츠는 그 주변을 흐르도록 함

 

 

float: left의 예시

 

See the Pen Untitled by leeyanggoo (@leeyanggoo) on CodePen.

 

float:  right의 예시

 

See the Pen CSS_float_right by leeyanggoo (@leeyanggoo) on CodePen.


clear

 

clear 속성은 부유(floating)된 요소의 영향을 제거하고 정상적인 흐름을 되돌리는 역할을 합니다. clear 속성은 float 속성을 적용한 요소의 다음에 나오는 요소에 적용하여 이전의 float된 요소와의 상호작용을 제거할 수 있습니다.

 

속성 값 속성 설명
clear: left float된 박스 중 왼쪽이 짧을 때 왼쪽의 빈 공간부터 채워 내려옴 
clear: right float된 박스 중 오른쪽이 짧을 때 오른쪽의 빈 공간부터 채워 내려옴 
clear: both float된 박스 중 어느 쪽도 채우지 않고 다시 한 단으로 배치 

 

예제 : 초록색 박스(box3)을 다른 박스와 겹치지 않게 오른쪽에 배치하라.

 

See the Pen CSS_clear_both1 by leeyanggoo (@leeyanggoo) on CodePen.

 

위의 예제는 box1, box2, box3에 모두 float: left를 주었더니 제한된 wrap의 width값(600px) 때문에 box3이 box2 밑으로 배치된 상황입니다.

우리는 box3이 box1 밑이 아니고 온전히 제 영역을 차지할 수 있게 오른쪽으로 배치하려 합니다.

어떻게 해야 할까요?

 

See the Pen CSS_clear_both by leeyanggoo (@leeyanggoo) on CodePen.

 

먼저 box3에 clear: both를 주어 float의 속성을 없앴습니다.

그랬더니 float 속성이 없어진 box3은 블록 요소의 특성에 따라 box1 밑으로 배치된 걸 볼 수 있습니다.

우리는 예제에 따라 box3을 오른쪽으로 배치해야 하기 때문에

 

See the Pen CSS_clear_both3 by leeyanggoo (@leeyanggoo) on CodePen.

 

box3에 float: right 속성을 부여함으로써 box3이 온전히 제 영역을 차지할 수 있도록 만들었습니다.


이처럼 레이아웃을 구성할 때 float과 clear는 중요한 역할을 하는 속성이라 할 수 있습니다.

블록 요소의 특징과 float, clear 속성을 이해하고 이용한다면 복잡한 구성도 문제 없이 해낼 수 있겠죠?  :)