-
CSS position 속성Front-End 2018. 3. 28. 13:36
CSS 에서 특정 요소의 위치를 지정하는 속성으로
position
속성이 있습니다. 이position
속성을 이용해 요소의 위치를 지정하는 다양한 방법을 알아 봅시다.position
속성에는 아래의 값들을 사용할 수 있습니다.- initial
- inherit
- static
- fixed
- relative
- absolute
- sticky
이 값 들중
initial
이나inherit
은 다른 요소에서도 동일하게 적용되는 것들이니 따로 기록으로 남기지 않겠습니다. 또한sticky
의 경우 아직 정식적으로 모든 브라우저가 지원하는 케이스가 아니니 이 또한 기록으로 남기지 않고, 나머지 4개(static | fixed | relative | absolute
)에 대해서만 알아보겠습니다.staticposition
을 아무것도 지정하지 않으면 사용되는 기본 값입니다.position
속성을static
으로 지정하면 위치가 지정된 것이 아니라 그냥 HTML 문서에 따라 위치가 정해졌다고 보면 됩니다. 기본 값이기 때문에 보통의 경우 잘 쓰이지 않는 값입니다.div.static { position: static; }
fixed
position
을fixed
로 지정하면 해당 요소의 위치를 사용자의 브라우저를 기준으로 설정할 수 있습니다. 스크롤을 내려도 항상 같은 곳에 위치하는 상단바, 하단바, 광고 등이 이 속성을 이용하는 것입니다.이를 위해서는
top
,bottom
,left
,right
등으로 위치를 지정하고width
와height
로 요소의 크기를 지정할 수 있습니다.예를 들어 스크롤을 내려도 하단에 항상 고정되어 있는 하단바를 만들기 위해서는 아래와 같이
position
속성을 사용할 수 있습니다.div.footer-bar { position: fixed; left: 0; bottom: 0; width: 100%; height: 32px; }
relative
position
을relative
로 지정하면 해당 요소가 기본적으로 표시된 위치를 기준으로 새로운 위치를 지정 할 수 있습니다. 이 말을 다른 말로 하면position
을relative
로 지정하더라도top
이나left
등으로 새로운 위치를 지정하지 않는 이상 기본적으로 표시된 위치와 다르지 않음을 이야기 하는 것입니다.div.relative { position: relative; left: 100px; top: -100px; }
absolute
position
을absolute
로 지정하는 것은fixed
와 비슷하지만 다릅니다. 무슨 말인고 하니fixed
는 사용자의 브라우저를 기준으로 위치를 고정시키는 것이지만,absolute
는 해당 요소의 위치가 지정된 부모 요소를 기준으로해서fixed
시키는 것과 같다고 생각하면 됩니다.위치가 지정된 부모요소라는 것은 결국
position
속성이static
이 아닌 다른 값으로 지정 되어야 함을 의미합니다.div.parent { position: relative; } div.child { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
위 예제의 경우
parent
라는 클래스의 자식 요소인child
클래스 요소는parent
와 같은 위치에 같은 크기로 표시 됩니다. 두 div 요소를 겹쳐 놓은 것과 마찬가지입니다.만약
parent
클래스의 요소의position
을fixed
로 지정했다면child
클래스 요소도parent
와 마찬가지로 화면을 스크롤해도 항상 같은 위치에서 사용자에게 보여질 것입니다.'Front-End' 카테고리의 다른 글
React vs Angular vs Vue (0) 2019.01.16 Rappid / JointJS 프로젝트 완료 (0) 2018.12.21 Intellij 코드 자동정렬 Ctrl + Shift + F (1) 2018.11.06 JointJS 필요부분 정리 (0) 2018.11.02 동적 CP 추가관련 참고 API (0) 2018.11.01 CSS 공부 추천 (0) 2018.04.24 HTML 태그 정리 (0) 2018.03.28 댓글