Web story/CSS

display:inline의 잘못된 오해

JKJ1004 2008. 5. 7. 20:49

1. display


block Element 를 정렬할때 display: inline; 이나 float를 사용한다고 알고계시는 퍼블리셔들이 몇명이있다.


하지만 display경우에는 말그대로 디스플레이될 상태를 설정하는것이다.


즉 !  inline 레벨로 할것이냐 block레벨로 할것이냐 아니면 숨길것이냐를 설정하는것이다.


예전에 어딘가에서 display: inline; 과 float:left;를 같은 용도로 정렬로 사용하는데 차이점을 묻는 글을 본적이 있다.


block을 inline으로 하면 자연스럽게 인라인의 특징인 left정렬이 되는것이 당연하다.


예를 들어 spaninline요소이다 이녀석을 <span>aaa</span><span>aaa</span> 당연히 left정렬이 된다.


하지만 block요소들은 float로 설정하지않은이상은 떨어져서 한줄씩나온다.


고로 결론은


block의 정렬은 float  ! ! !

inline의 요소의 정렬은 text-align인것이다.



ps. block의 중앙정렬은 정렬을 원하는 block요소에서 margin: 0 auto;를 해주면 중앙 정렬이 된다

단  block의 특성상(IE) width값을 줘야중앙정렬이 된다.

 (DTD설정은 당연 해줘야함)



2. float


float는 위에서 언급한 바와 같이 object 즉 block의 정렬을 담당하고있는 녀석이다.


float Attribute

-none Default. Object displays where it appears in the text.
-left Text flows to the right of the object.
-right Text flows to the left of the object.


위의 Attribute 를 보다싶이 총 3가지의 정렬이 존재 한다.


float자석과도 같다 서로서로 왼쪽으로 붙을지 오른쪽으로 붙을지 결정만해주면


float해준 다음 Element 녀석들은 무조껀 그 효과로 인해서 붙어버린다.


이것을 미연에 방지하기위에서 clear을 해주는것이다.


다음은 clear에 관한 Attribute 이다.


clear Attribute

-none Default. Floating objects are allowed on both sides.
-left Object is moved below any floating object on the left side.
-right Object is moved below any floating object on the right side.
-both Object is moved below any floating object.


clear은 혼자 사용할때는 아무 효과가 없다 이녀석의 목적은 float된 녀석들을 초기화 시켜버리는 기능을 한다 .



clear:left; : 왼쪽으로 붙은 녀석들만 원래대로 떨어져 ! !

clear:right; : 오른쪽으로 붙은 녀석들만 원래대로 떨어져! !

clear:both; 다 떨어져 !


ps.떨어져는 원래의 속성으로 돌아가란말이다 ㅡ_ㅜ 즉 block요소의 고유의 정렬인 한줄씩정렬


float:right;float: left;를 같이 사용했는데

clear:left;를 해버리면 float:right;는 살아 있어서 후에 올 Element의 한놈은 오른쪽으로 붙어 버린다

잘생각해서 clear를 사용하자


그리고 하위 Element가 없어도 종료시점에는 가능하면 clear을 해주자 나중에 include로 불러들이거나 업데이트할때 또 오류가 발생할수있는걸 미연에 방지하기위해서이다.

반응형