position프로퍼티의 값은 'static, absolute, relative, fixed'
position 설정 후에 left, right, top, bottom 값으로 위치를 지정한다.
position의 값으로 relative를 지정하면 left, top, right, bottom의 위치값들은 relative가 지정된 태그 그 자신의 위치 에서 위치값만큼 이동한다.
태그를 감싸고있는 부모 태그에게 relative를 지정하면 부모태그를 기준으로 자식태그의 위치값을 지정할 수 있다.
position의 값으로 absolute를 지정하면 자식태그가 이 블록을 인지하지 못한 채 주어진 절대값을 기준으로 배치된다.
absolute로 지정된 자식태그에게 가장 가까운 부모태그(static을 제외한)를 기준으로 위치값을 지정할 수 있다.
position의 값으로 fixed를 지정하면 그 태그의 위치는 항상 화면을 기준으로 배치된다.
float 프로퍼티는 본래 이미지와 텍스트가 있을 때, 이미지 주위를 텍스트로 감싸기 위해 만들어진 것이었지만 주로 레이아웃을 구성할 때 블록 레벨 요소를 가로 정렬하기 위해 사용된다.
float이 적용된 태그를 뒤따라 오는 태그들이 지정한 방향으로 달려든다.
달려드는 속성을 해지(clear)해줘야만 뒤의 요소들을 다시 배치할수 있다. (자식요소 모두 플롯이 적용되면, 부모요소의 높이가 잡히지 않는다)
부모 태그에 float 프로퍼티를 선언한다.
이 경우 부모 태그의 너비는 float된 자식태그의 콘텐츠를 표현할 수 있는 만큼만으로 작게 줄어들게 된다.
부모 태그에 overflow: hidden; 프로퍼티를 적용한다.
이 경우 콘텐츠가 넘칠경우 잘리는 문제가 있다. 가장 많이 사용하는 방법이다.
부모 태그에 가상요소 :after를 생성 해 주고, clear를 적용한다.
이 경우 불필요한 markup을 줄일 수 있으나 빈 가상요소를 사용해야한다.
/* 가상요소 :after 사용방법 */
.container:after {
display: block;
clear: both;
content: '';
}
.container {
zoom: 1; /* IE 6,7 */
}