position 으로 위치정하기
position은 요소의 위치를 정할 때 어디를 기준으로 할지 정하는 속성입니다. 속성값은 static, absolute, fixed, relative가 있으며, 기본값은 static입니다.위치를 계산할 기준을 정하고 나면 top, right, bottom, left 속성으로 위치를 정할 수 있습니다. 단, position의 속성값으로 static을 사용하면 top, right, bottom, left를 설정해도 적용되지 않습니다.간단한 예는 다음과 같습니다.
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>CSS | position</title>
<style>
.container {
width: 500px;
height: 500px;
margin: auto;
border: 1px solid #da9627;
background-color: #ffb848;
}
.po {
width: 200px;
border: 1px solid #17a668;
background-color: #27a9e3;
position: static;
top: 100px;
left: 100px;
}
</style>
</head>
<body>
<div class="container">
<p>Lorem ipsum dolor.</p>
<div class="po">
<p>Lorem ipsum dolor.</p>
</div>
<p>Lorem ipsum dolor.</p>
</div>
</body>
</html>
파란 박스의 position을 static으로 설정했기 때문에 HTML 요소의 계층구조와 순서에 맞게 위치합니다. 그리고, top과 left 속성은 아무런 의미가 없습니다.
이제 속성값을 absolute으로 바꿔보겠습니다.
position: absolute;문서의 꼭짓점을 기준으로 위치가 계산됩니다.
속성값을 fixed로 바꿔보겠습니다.
position: fixed;
웹브라우저의 꼭짓점을 기준으로 위치가 계산됩니다. 따라서 스크롤을 해도 위치가 변하지 않습니다.
속성값을 relative로 바꿔보겠습니다.
position: relative;
static일 때의 위치를 기준으로 위치를 계산합니다. 주의할 점은 원래의 자리가 다른 요소로 채워지지 않고 공백으로 남는다는 것입니다.
absolute이 문서의 꼭짓점을 기준으로 위치를 계산하지만, 상위 요소에 relative를 가진 요소가 있다면, 그 요소의 꼭짓점을 기준으로 계산합니다. 주황색 박스에 position: relative;를 추가하고, 파란색 박스의 위치를 정해보겠습니다.
.container {
width: 500px;
height: 500px;
margin: auto;
border: 1px solid #da9627;
background-color: #ffb848;
position: relative;
}
.po {
width: 200px;
border: 1px solid #17a668;
background-color: #27a9e3;
position: absolute;
top: 100px;
left: 100px;
}
주황색 박스를 기준으로 위치가 정해지는 것을 확인할 수 있습니다.
출처
http://www.cmsfactory.net/node/10242



