[css] position (static, relative, absolute, fixed) 의 속성

반응형





[css] position (static, relative, absolute, fixed) 의 속성



position 은 레이아웃을 배치하거나, 객체를 위치시킬때 사용하는 css 속성이다.


position 속성은 상속되지 않으며, 위(top), 아래(bottom), 왼쪽(left), 오른쪽(right) 의 위치를 같이 설정 할 수 있다.



 position 속성 사용법 


static (기본값) :위치를 지정하지 않을 때 사용한다.


relative : 위치를 계산할때 static의 원래 위치부터 계산한다.


absolute : 원래 위치와 상관없이 위치를 지정할 수 있다. 단, 가장 가까운 상위 요소를 기준으로 위치가 결정 된다.


fixed : 원래 위치와 상관없이 위치를 지정할 수 있다. 하지만 상위 요소에 영향을 받지 않기 때문에 화면이 바뀌더라도 고정된 위치를 설정 할 수 있다. 

         브라우저 화면의 상대 위치를 기준으로 위치가 결정된다.




기본 html 소스


실행 결과는 다음과 같다.






이제부터 위의 html 문서에서 position 속성을 적용해 보자.


1. position: static


div#a {

background: #52D4FF;

position: static;

}

div#b {

background: #FF63EA;

position: static;

}

div#c {

background: #C5FF63;

position: static;

}


position: static 속성은 설정 전과 후가 같다.




2. position: relative


div#a {

background: #52D4FF;

position: static;

}

div#b {

background: #FF63EA;

position: relative;
top: 0px;
left: 100px;

}

div#c {

background: #C5FF63;

position: relative;
top: 0px;
left: 200px;

}


position: relative 속성은 static의 원래 위치부터 계산한다.


위(top), 아래(bottom), 왼쪽(left), 오른쪽(right) 의 위치를 같이 설정할 수도 있다.


아래 그림과 같이 b영역은 원래 위치에서 위 0px, 왼쪽 100px 로 위치시켰고,


c 영역은 원래 위치에서 위 0px, 왼쪽 200px 로 위치 시켰다.









3. position: absolute


div#a {

background: #52D4FF;

position: static;

}

div#b {

background: #FF63EA;

position: absolute;
top: 0px;
left: 100px;

}

div#c {

background: #C5FF63;

position: absolute;
top: 0px;
left: 200px;

}


position: absolute 속성은 static이나 relative 와 다르게 바깥 쪽에 공간이 생기지 않는다.


여기서 absolute는 상위 요소인 static 위치를 기준으로 위치가 결정 된다.





<!DOCTYPE html>

<html>

<head>

<title></title>

<style>

div {

width: 100px;

height: 100px;

}


div#a {

width: 300px;

height: 300px;

background: #52D4FF;

position: relative;

top: 100px;

left: 100px;

}

div#b {

background: #FF63EA;

position: absolute;

top: 0px;

left: 100px;

}

div#c {

background: #C5FF63;

position: absolute;

top: 0px;

left: 200px;

}

</style>

</head>

<body>

<div id="a">

a 영역

<div id="b">

b영역

</div>

<div id="c">

c영역

</div>

</div>

</body>

</html>


위와 같은 경우는 relative (a영역) 안에 설정된 absolute (b영역, c영역) 은 a영역부터 시작해서 위치가 결정됨을 알 수 있다.




4. position: fixed


<!DOCTYPE html>

<html>

<head>

<title></title>

<style>

div {

width: 100px;

height: 100px;

}


div#a {

width: 300px;

height: 300px;

background: #52D4FF;

position: relative;

top: 100px;

left: 100px;

}

div#b {

background: #FF63EA;

position: absolute;

top: 0px;

left: 100px;

}

div#c {

background: #C5FF63;

position: fixed;

top: 0px;

left: 200px;

}

</style>

</head>

<body>

<div id="a">

a 영역

<div id="b">

b영역

</div>

<div id="c">

c영역

</div>

</div>

</body>

</html>


position: fixed 속성은 브라우저 화면의 상대 위치이다.


따라서 화면이 바뀌어도 고정된 위치를 설정 할 수 있고, 상위 요소에 영향을 받지 않는다.


ie7, ie8 브라우저 환경에서는 position: fixed 속성이 적용되지 않으므로 문서 타입을 규정해 주어야 한다.








반응형
TAGS.

Comments