[css] 상대 위치 대 절대 ​​위치

차이 무엇 position: relativeposition: absoluteCSS의는? 그리고 언제 사용해야합니까?



답변

절대 CSS 포지셔닝

position: absolute;

절대 위치를 이해하는 것이 가장 쉽습니다. CSS position속성으로 시작하십시오 .

position: absolute;

그러면 브라우저에 배치 할 항목을 문서의 정상적인 흐름에서 제거하고 페이지의 정확한 위치에 배치해야합니다. 그것은 HTML에서 그 전에 요소 또는 그 이후에 그것이 그러나 웹 페이지에 배치하는 방법에 영향을주지 않습니다 것입니다 당신이 그것을 무시하지 않는 한 그것의 부모의 위치에 따라합니다.

당신이 10 개 픽셀 문서 창 상단에서 요소를 배치하려는 경우 사용하는 것 top오프셋 position과 거기 absolute위치 :

position: absolute;
top: 10px;

그러면이 요소는 10px내용이 요소의 아래, 위 또는 아래 (시각적으로)에 상관없이 항상 페이지 상단에서 표시 됩니다.

네 가지 포지셔닝 속성은 다음과 같습니다.

  1. top
  2. right
  3. bottom
  4. left

그것들을 사용하려면 오프셋 속성으로 생각해야합니다. 즉, 배치 된 요소 right: 2px가 오른쪽으로 이동되지 않습니다 2px. 오른쪽은 창의 오른쪽 (또는 부모를 재정의하는 위치)에서으로 오프셋됩니다 2px. 다른 세 사람도 마찬가지입니다.

상대 위치

position: relative;

상대 위치 지정은 위치 지정과 동일한 네 가지 위치 지정 속성을 사용합니다 absolute. 그러나 브라우저보기 포트에서 요소의 위치를 ​​기반으로하는 대신 요소가 여전히 정상적인 흐름 에있는 경우 요소의 위치에서 시작합니다 .

예를 들어, 웹 페이지에 세 개의 단락이 있고 세 번째 단락에 position: relative스타일 이있는 경우 위치는 뷰 포트의 원래면이 아닌 현재 위치를 기준으로 오프셋됩니다.

단락 1.

단락 2.

단락 3.

위의 예에서 세 번째 단락은 3em컨테이너 요소의 왼쪽에서 배치되지만 여전히 첫 두 단락 아래에 있습니다. 문서의 정상적인 흐름을 유지하고 약간 오프셋됩니다. 로 변경 position: absolute;하면 문서의 일반적인 흐름에 더 이상 포함되지 않으므로 그 뒤의 모든 항목이 맨 위에 표시됩니다.

노트:

  • 기본적 width으로 요소의 기본 크기 width100%채울 수있는 공간과 상대적으로 배치 된 요소와 달리, 절대적으로 배치 된 요소 의 기본값 은 내용의 너비입니다 .

  • 절대적으로 배치 된 요소와 겹치는 요소를 가질 수 있지만 상대적으로 배치 된 요소 (예 : 음수 여백 / 포지셔닝을 사용하지 않음)로는이를 수행 할 수 없습니다.


뽑아 낸 많은 것 : 이 자원


답변

“상대적”및“절대적”포지셔닝은 서로 다른 프레임 워크와 함께 실제로 상대적입니다. “절대”위치는 다른 둘러싸는 요소의 위치와 관련이 있습니다. “상대적”위치는 요소 자체가 위치를 지정하지 않은 위치에 상대적입니다.

그것은 당신의 요구와 당신이 사용하는 목표에 달려 있습니다. “상대적”위치는 요소의 흐름에있을 수있는 위치에서 요소를 변위하려는 경우에 적합합니다 (예 : 일부 문자를 위첨자 위치에 표시). “절대”위치 지정은 다른 요소에 의해 설정된 일부 좌표계에 요소를 배치하는 데 적합합니다 (예 : 일부 텍스트가있는 이미지를 “인쇄”).

특별하게, 변위가없는 “상대”위치 설정 (설정 만 position: relative)을 사용하여 요소를 참조 프레임으로 만들면 요소 안에있는 요소에 대해 “절대”위치 지정을 사용할 수 있습니다 (마크 업).


답변

주의해야 할 또 다른 사항은 절대 요소를 부모 요소로 제한하려면 부모 요소의 위치를 ​​상대로 설정해야한다는 것입니다. 이렇게하면 자식 요소가 부모 요소에 포함되어 전체 창에 대해 “상대적”이 아닙니다.

다음과 같은 영향을주는 간단한 예를 제공 하는 블로그 게시물 을 작성했습니다.

여기에 이미지 설명을 입력하십시오

그것은 녹색의 div를 가지고 있으며 그것은 절대적으로 노란색의 div의 바닥에 위치합니다.

1 http://blog.troygrosfield.com/2013/02/11/working-with-css-positions-creating-a-simple-progress-bar/


답변

상대 위치 :

position : relative를 지정하면 위쪽 또는 아래쪽, 왼쪽 또는 오른쪽을 사용하여 문서에서 일반적으로 발생하는 위치를 기준으로 요소를 이동할 수 있습니다.

절대 위치 :

position : absolute를 지정하면 요소가 문서에서 제거되고 지시 한 위치에 정확하게 배치됩니다.

다음은 절대 및 상대 위치에 따른 두 위치의 샘플 사용법에 대한 http://www.barelyfitz.com/screencast/html-training/css/positioning/ 튜토리얼 입니다.


답변

상대 : 현재 위치와 관련이 있지만 이동할 수 있습니다. 또는 상대 위치 요소가 ITSELF를 기준으로 배치됩니다.

절대 : 절대 위치 요소는 IT의 가장 가까운 위치에 상대적인 위치에 배치됩니다. 하나가 존재하면 창과 관련하여 fixed …..처럼 작동합니다.

<div style="position:relative"> <!--2nd parent div-->
    <div>   <!--1st parent div-->
        <div style="position:absolute;left:10px;....."> <!--Middle div-->
          Md. Arif
       </div>
    </div>
</div>

여기에서 두 번째 부모 div위치는 상대적이므로 중간 div은 두 번째 부모 위치와 관련하여 위치를 변경합니다 div. 첫 번째 상위 div위치가 상대적이면 중간 div은 첫 번째 상위 위치와 관련하여 위치를 변경합니다 div. 세부


답변

내 명성이 언급하기에 충분하지 않기 때문에 대답을한다. 그러나 이것을 답으로 보지 마라. 추가 정보는 나 자신과 마찬가지로 바닥 글과 위치에 문제가 있었다.

페이지를 설정할 때 바닥 글이 항상 절대 위치로 맨 아래에 있고 주 컨테이너 / 래퍼가 상대적 위치로 유지되도록 페이지를 설정할 때.

그런 다음 텍스트 내용과 동일한 내용 (머리글과 바닥 글 사이의 흰색 부분)의 메뉴에 문제가 있음을 발견했습니다. 바닥 글을 절대로 설정하면 바닥 글이 더 이상 유지되지 않습니다.

복잡한 주제를 말하면, 포지셔닝입니다.

내 솔루션, 내 웹 페이지의 ‘절대’포지션에서 원했던 콘텐츠에 대한 예를 들어 드롭 다운 메뉴를 열 때 실제로는 상대 위치를 지정하고 드롭 다운 아래에 35em을 배치하는 것이 측면으로 밀리지 않았습니다. 메뉴. (35em은 완전히 확장 된 경우 드롭 다운 메뉴의 높이입니다)

그런 다음 Top : -35em. 이전에 내용을 푸시했습니다. 그리고 margin-bottom : -35em을 추가하십시오. 이렇게하면 내용이 드롭 다운 메뉴 “아래”에 있지만 시각적으로 드롭 다운 메뉴와 나란히 있습니다! 바닥 글 아래의 공백은 10m 정도의 여유를 갖습니다. 그래서 이것에 대한 나의 해결책은 다음과 같습니다.

 html, body {
    margin:0;
    padding:0;
    height:100%;

}
h1 {
    margin:0;
}
    #webpage {
    position:relative;
    min-height:100%;
    margin:0;
    overflow:auto;
}
     #header {
    height:5em;
    width:100%;
    padding:0;
    margin:0;
}
     #text {
    position:relative;
   margin-bottom:-32em;
    padding-top:2em;
    padding-right:2em;
    padding-bottom:10em;
    background-repeat:no-repeat;
    width:70%;
    padding-left:auto;
    margin-left:auto;
    margin-right:auto;
    right:10em;
    float:right;
    top:-32em;
      }
#dropdown {

position:absolute;
    left:0;
    width:20%;
    clear:both;
    display:block;
    position:relative;
    top:1em;
    height:35em;

}
    #footer {
    position:absolute;
    width:100%;
    right:0;
    bottom:0;
    height:5em;
    margin:0;
     margin-top:5em;
}

귀하의 질문에 대한 답변은 훌륭하지만 많은 문제가 발생한 후 이것이 매우 좋은 해결책이며 위치 지정 방식을 더 잘 이해하는 방법이라는 것을 알았습니다. 텍스트 내용을 드롭 다운 메뉴 아래에 놓으면 ‘ 내 텍스트를 옆으로 밀지 마십시오. 텍스트를 절대 위치로 변경하면 바닥 글이 그대로 유지되지 않았습니다. 나는 이것이 더 많은 사람들에게 문제라고 믿을 수 있기 때문에 여기에 추가합니다. 실제로 무슨 일이 일어 났는지, 나는 텍스트를 35ems 내 드롭 다운 아래에 넣습니다.

그런 다음, 나는 시각적으로 서로 바로 옆에, 상대적 위치와 상단을 표시합니다.

음수 값은 때때로 이러한 위치를 더 잘 이해할 때 매우 우수한 기능성으로 과소 평가됩니다.

당연히 고정 위치는 바닥 글의 논리처럼 보였지만 텍스트 또는 내용이 뷰 포트보다 길면 바닥 글이 뷰포트 아래로 내려 가기를 원합니다. 페이지에 내용이 거의 없으면 맨 아래에 머물러 있습니다.

이 설정은 매우 훌륭하게 수정되었으며보다 유동적이고 동적 인 페이지 레이아웃을 위해 ‘px’가 아닌 ’em’을 사용해야합니다! 🙂

(더 나은 솔루션이있을 수 있지만 이것은 장치뿐만 아니라 크로스 플랫폼에서도 효과적입니다).


답변

상대 대 절대 ​​:

  • 차이점 : 가장 가까운 조상을 기준으로 한 자체 기준.
  • 차이점 : 주변의 다른 요소는 오래된 존재를 존중하며 주변의 다른 요소는 오래된 존재를 존중하지 않습니다.
  • 유사성 : 주변의 다른 요소는 새로운 존재를 존중하지 않으며, 주변의 다른 요소는 새로운 존재를 존중하지 않습니다.