고정 위치 그리드 레이아웃이 본문 너비를 초과하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-10-30 19:02:30
원래의
550명이 탐색했습니다.

Why Does My Fixed Positioned Grid Layout Exceed The Body Width?

본문 너비를 초과하는 고정 위치 그리드 레이아웃

고정 위치의 CSS 그리드를 사용하는 경우 그리드 요소가 확장되는 문제가 발생할 수 있습니다. 페이지 본문 너머, 특히 Grid-template-columns 속성을 100%로 설정하는 경우. 이것이 발생하는 이유를 이해하기 위해 문제를 분석하고 해결책을 제시해 보겠습니다.

제공된 CSS 코드에서:

.parent {
  position: fixed;
  width: 100%;
  display: grid;
  grid-template-columns: 40% 60%;
}
로그인 후 복사

상위 컨테이너에 대해 100%의 고정 너비를 지정했습니다. 즉, 볼 수 있는 영역의 전체 너비를 차지한다는 의미입니다. Grid-template-columns 속성은 그리드 열의 너비를 각각 40%와 60%로 설정합니다.

그러나 중요한 문제는 위치에 있습니다. position:fixed를 상위 컨테이너로 설정하면 일반 문서 흐름에서 분리되어 지정된 좌표(이 경우 페이지의 왼쪽 상단 모서리)에 배치됩니다. 브라우저는 내용이 표시 영역을 초과하더라도 고정 요소를 위한 공간을 예약합니다.

이 동작은 width: 100% 속성과 관련이 없습니다. 해당 줄을 제거하더라도 문제는 여전히 존재합니다. 범인은 Grid-template-columns 속성입니다.

grid-template-columns 속성은 사용 가능한 공간을 두 개의 열로 나누지만 열 사이에 5px의 그리드 간격을 지정했습니다. 그리드의 전체 너비. 귀하의 경우 40% 60% 5px = 105px입니다. 이 추가 5px는 오른쪽 열의 가장자리를 볼 수 있는 영역 밖으로 밀어내어 본문 외부에 나타나게 합니다.

해결책:

이 문제를 해결하려면 다음을 계산해야 합니다. 그리드 간격을 고려하여 그리드 열의 정확한 백분율. 절대 백분율을 사용하는 대신 사용 가능한 공간의 일부를 나타내는 fr 단위를 사용할 수 있습니다.

.parent {
  position: fixed;
  width: 100%;
  display: grid;
  grid-template-columns: 4fr 6fr;
}
로그인 후 복사

이 수정된 코드에서 4fr 및 6fr 값은 사용 가능한 공간의 4 및 6 부분을 나타냅니다. , 각각. 브라우저는 이러한 비율에 따라 열의 실제 너비를 계산하여 5px의 그리드 간격을 포함하여 상위 컨테이너에 맞는지 확인합니다.

fr 단위를 사용하면 반응형 그리드 레이아웃을 생성할 수 있습니다. 다양한 화면 크기에 맞게 조정되고 그리드 요소가 페이지 본문 내에 유지되도록 합니다.

위 내용은 고정 위치 그리드 레이아웃이 본문 너비를 초과하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!