position 종류
html && css에서 엘리먼트의 위치를 지정하는 방법은 4가지로 분류됩니다.
static (정적 위치), relative (상대적 위치), absolute (절대적 위치), fixed(고정 위치)가 있습니다.
position:static;
우선 static의 예를 살펴보죠. 아래 이미지는 각각의 엘리먼트에 아무 속성도 추가하지 않았을 때의 화면입니다.
other라는 독자적인 엘리먼트, 그리고 parent를 하위의 child엘리먼트가 있습니다.
child 엘리먼트에 position:static; 을 추가해보고, 화면을 보세요 달라지는게 있나요?
달라지는 건 없습니다. 즉 position의 default value는 static이라는 것을 알 수 있습니다.
position:relative;
relative라는 단어에서 유추할 수 있듯이, position:relative는 상대적은 위치값을 나타냅니다.
위와 같이 other, parent, child엘리먼트가 존재할 때 child에 position을 relative로 설정해 보겠습니다.
화면이 어떻게 변했을까요?
( left는 왼쪽을 기준으로 50px만큼 떨어져서 위치해라, top은 상단을 기준으로 100px만큼 떨어져서 위치시켜라. )
위와 같은 이미지처럼 child는 parent를 원래의 위치에서 left, top값만큼 위치가 변경된 것을 알 수 있습니다.
position:absolute;
absolute는 절대적 위치를 나타냅니다. absolute에서는 다소 헷갈리는 부분이 있으니 집중해주세요.
absolute는 부모의 position값이 static이냐 아니냐에 따라 상이한 결과를 보여줍니다.
parent의 position을 설정하지 않거나, static으로 주었을 때 부터 살펴보겠습니다.
위의 경우, child는 parent기준으로 left,top이 적용될까요? 아니면 html (최상위) 기준으로 적용될까요?
정답은 html 기준으로 적용됩니다.
absolute는 바로 상위의 엘리먼트에서 position:static; 혹은 position을 설정하지 않았다면, 최상위 html 엘리먼트를 기준
으로 위치를 설정하게 됩니다. 또한, absoulte의 특성상 부모 엘리먼트와의 연결이 끊기게 되면서 부모 엘리먼트와는 무관
하게 됩니다. 즉, 크기를 지정할 수 없게 되면서 자기 자신의 콘텐트 크기만 남게되는것입니다.
( 이 경우, 크기를 지정하고 싶으면 width,height값을 따로 주면됩니다. )
그러면서 자연스럽게? 부모 또한 자식 엘리먼트가 차지하고 있던 공간을 빼버리게 되는 것입니다.
이제 parent의 position을 relative( static이 아닌 다른 값 )을 넣어보겠습니다.
위에서 볼 수 있듯이, 이제는 최상위 엘리먼트인 html을 기준으로 child의 위치값이 정해지는 것을 확인할 수 있습니다.
참고 자료 : https://opentutorials.org/course/2418/13414
'웹 > HTML' 카테고리의 다른 글
초간단 웹 호스팅(github) && 웹 서버 설치 ( MAC ) (0) | 2018.09.22 |
---|---|
HTML 태그를 어떻게 사용해야 할까? (0) | 2018.09.21 |
처음이자 마지막 HTML - 실습환경 구축 ( Atom ) (0) | 2018.09.20 |