댓글 목록

CSS 레이아웃 - 위치(position)

페이지 정보

작성자 운영자 작성일 17-10-29 19:17 조회 1,569 댓글 0

동영상 강좌는 유튜브 채널 '웹학교'를 이용하시기 바랍니다.



position속성은 요소에 사용되는 위치 지정방법의 유형(정적, 상대적, 고정, 절대 또는 고정)을 지정합니다.


position 속성

이 position속성은 요소에 사용되는 위치 지정 방법의 유형을 지정합니다.

5가지 위치 값이 있습니다.

  • static
  • relative
  • fixed
  • absolute
  • sticky


요소는 위쪽, 아래쪽, 왼쪽 및 오른쪽 속성을 사용하여 배치됩니다. 그러나 이러한 속성은 position속성을 먼저 설정하지 않으면 작동하지 않습니다.

또한, 위치 값에 따라 다르게 작동합니다.


position : static;

HTML요소는 기본적으로 정적으로 배치됩니다.


정적으로 배치된 요소는 위쪽, 아래쪽, 왼쪽 및 오른쪽 속성의 영향을 받지 않습니다.

position:static;을 갖는 요소는 특별한 방법으로 배치되지 않습니다. 페이지의 정상적인 흐름에 따라 항상 배치됩니다.

div.static {
    position: static;
    border: 3px solid #73AD21;
}

position : relative;

position:relative;을 갖는 요소는 일반적 위치에 상대적으로 배치됩니다.

상대적으로 배치된 요소의 위쪽, 오른쪽, 아래쪽 및 왼쪽 속성을 설정하면 정상 위치에서 벗어나 조정됩니다.

다른 컨텐츠는 요소의 남은 틈에 맞춰 조정되지 않습니다.

div.relative {
    position: relative;
    left: 30px;
    border: 3px solid #73AD21;
}

position : fixed;

position:fixed;를 갖는 요소는 뷰포트를 기준으로 배치됩니다. 즉, 페이지가 스크롤 되어도 항상 같은 위치에 유지됩니다. 위쪽, 오른쪽, 아래쪽 및 왼쪽 속성은 요소의 위치를 지정하는데 사용됩니다.


고정 위치된 요소는 일반적으로 위치한 페이지에 간격을 남기지 않습니다.


다음은 페이지의 오른쪽 아래에 요소를 고정시킵니다.

div.fixed {
    position: fixed;
    bottom: 0;
    right: 0;
    width: 300px;
    border: 3px solid #73AD21;
}

position : absolute;

position:absolute;를 갖는 요소는 가장 가까운 위치에 있는 조상과 관련하여 배치됩니다. (뷰포트 기준이 아닙니다.)

그러나 절대 위치 요소에 조상이 배치되어 있지 않으면 문서 본문을 사용하고 페이지 스크롤과 함께 이동합니다.

** "위치된" 요소는 static을 제외한 그 어떤 위치중 하나입니다.

div.relative {
    position: relative;
    width: 400px;
    height: 200px;
    border: 3px solid #73AD21;
} 

div.absolute {
    position: absolute;
    top: 80px;
    right: 0;
    width: 200px;
    height: 100px;
    border: 3px solid #73AD21;
}

position : sticky;

position:sticky;을 갖는 요소는 사용자의 스크롤 위치를 기반으로 배치됩니다.


sticky 요소는 스크롤 위치에 따라 relative와 fixed사이에 토글합니다.

뷰포트에서 지정된 오프셋 위치가 충족될 때까지 상대적 위치에 배치된 다음 위치에 '고정'됩니다.(fixed같은)


** Internet Explorer, Edge 15그리고 이전 브라우저는 sticky 위치값을 지원하지 않습니다. 사파리 브라우저는 -webkit-접두사가 필요합니다. sticky값은 적어도 하나 이상의 top, right, bottom, left속성을 필요로 합니다.


아래 예는 sticky를 갖는 요소는 스크롤이 top:0에 도달하면 페이지 상단에 고정됩니다.

div.sticky {
    position: -webkit-sticky; /* Safari */
    position: sticky;
    top: 0;
    background-color: green;
    border: 2px solid #4CAF50;
}

겹치는 요소들

요소가 배치되면 다른 요소와 겹칠 수 있습니다.

z-index속성은 요소의 스택 순서를 지정합니다. (요소는 다른 요소의 앞에 또는 뒤에 있어야 함)

요소는 양수 또는 음수 스택 순서를 가질 수 있습니다.

img {
    position: absolute;
    left: 0px;
    top: 0px;
    z-index: -1;
}

더 큰 스택 순서를 갖는 요소는 항상 스택 순서가 낮은 요소 앞에 위치합니다.


** 두 개 배치된 요소가 z-index지정 없이 겹치면 HTML코드의 마지막에 배치된 요소가 맨 위에 표시됩니다.


댓글목록 0

등록된 댓글이 없습니다.

CSS Flexbox강좌

CSS Variables강좌 

CSS Grid강좌