Notice
Recent Comments
Recent Posts
«   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
Today
Total
관리 메뉴

기록 > 기억

[CSS] float 속성 본문

IT국비지원

[CSS] float 속성

BY SON 2021. 8. 31. 14:57

float 속성

 

예제 )

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>float 속성</title>
<style type="text/css">
	.container {
		border: 1px solid red;
	}	
	.orange {
		width: 100px;
		height: 100px;
		background-color: orange;		
	}
	.slateblue {
		width: 300px;
		height: 100px;
		background-color: slateblue;		
	}
	.violet {
		width: 500px;
		height: 100px;
		background-color: violet;		
	}
</style>
</head>
<body>
	<div class="container">
		<div class="orange"></div>
		<div class="slateblue"></div>
		<div class="violet"></div>
	</div>	
</body>
</html>

div는 블록단위라 공간을 끝까지 차지함

 

 

① orange div에만 float : left 를 주면?

.orange { float : left; }

orange div가 float속성으로 인해 떠있기 때문에
slateblue div는 공간이 비어있다고 인식해서 orange div 위치를 차지함
(orange div뒤에 slateblue div가 겹쳐져 있음)

 

 

② orange div와 slateblue div에만 float : left 를 주면?

.orange, .slateblue { float : left; }

orange div와 slateblue div가 float속성으로 인해 떠있기 때문에

violet div는 공간이 비어있다고 인식해서 orange div와 slateblue div 위치를 차지함

(orange div와 slateblue div 뒤에 violet div가 겹쳐져 있음)

 

 

③ orange, slateblue, violet div 모두 float : left 를 주면?

.orange, .slateblue, .violet { float : left; }

모두 float 속성을 left로 주었더니 나란히 붙음.

그런데 자식이 모두 float 상태로 떠있기 때문에, 부모 입장에서는 자식태그가 없다고 인식함.

(빨강색 border 보면 height가 없다고 인식)

 

 

●  float 속성 해제 방법

① 부모 태그에  ::after  가상요소 (추천)

.container::after {
	display: block;	/* 블록단위로 한줄 꽉차게 만들기 */
	content: "";	/* 내용없음 */
	clear: both;	/* float 클리어 */
}

② 부모 태그에  overflow : hidden; 

.container {
	overflow: hidden;
}

③ float이 적용된 자식 태그의 다음요소에  clear : both; 

④ 부모 태그의 높이를 자식 태그의 높이만큼 지정 

 

Comments