>  기사  >  웹 프론트엔드  >  위치가 지정되지 않은 형제 요소가 고정 요소에 영향을 미칠 수 있는 이유는 무엇입니까?

위치가 지정되지 않은 형제 요소가 고정 요소에 영향을 미칠 수 있는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-25 01:00:02486검색

Why Can Fixed Elements Be Affected by Non-Positioned Siblings?

고정 요소의 동작 이해: 위치가 지정되지 않은 형제에 의해 영향을 받을 수 있는 이유

CSS 위치 지정 영역에서는 다음과 같은 현상이 나타납니다. position:fixed 요소가 위치 지정되지 않은 형제 요소의 영향을 받을 수 있는 이유는 무엇인지 당황스럽습니다. 그러나 기본 메커니즘을 이해하면 논리적인 설명이 드러납니다.

위치가 고정된 요소는 일반 문서 흐름에서 제거되고 브라우저 뷰포트를 기준으로 배치됩니다. 뷰포트는 브라우저 창 내 웹페이지의 표시 영역입니다.

제공한 예에서 헤더 요소는 고정되어 있고 기본 요소의 여백은 상단: 90px입니다. 놀랍게도 헤더가 여백의 영향을 받은 것처럼 아래쪽으로 이동합니다.

이 동작을 이해하려면 CSS 여백 축소의 역할을 고려해야 합니다. 여백이 있는 두 요소가 서로 닿으면 해당 여백이 단일 여백으로 병합됩니다. 이 경우 body 요소(기본 요소의 상위 요소)의 기본 여백은 8px입니다. 메인 요소의 margin-top 90px을 적용하면 마진 축소가 발생하여 합쳐진 마진이 98px이 됩니다.

이러한 합쳐진 마진은 본문과 메인 요소 모두 98px 아래로 이동합니다. 헤더는 뷰포트를 기준으로 고정되어 있으므로 문서 흐름의 요소를 기반으로 계산되는 뷰포트를 따라 이동합니다. 주요 요소는 첫 번째 유입 요소이므로 그 여백은 뷰포트 계산에 영향을 미쳐 헤더가 아래쪽으로 이동하는 것처럼 보입니다.

본질적으로 고정 헤더의 위치는 비요소의 영향을 직접 받지 않습니다. -물리적 위치 측면에서 위치 형제. 그러나 형제의 여백은 뷰포트 계산에 영향을 미치며 헤더의 명백한 움직임에 간접적으로 영향을 미칩니다.

위 내용은 위치가 지정되지 않은 형제 요소가 고정 요소에 영향을 미칠 수 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.