일반적인 CSS 디자인 문제 해결: 페이지 또는 콘텐츠 하단 중 더 낮은 바닥글 배치
2556 단어 webdevcssjavascripthtml
바닥글 div를 페이지 하단에 배치하고 고정하면(
position:fixed, bottom:0, width:100%
) 짧은 콘텐츠 페이지(스크롤할 필요가 없음)에서 잘 작동합니다. 그러나 문제는 더 긴 페이지에서도 콘텐츠 하단으로 이동하는 대신 바보처럼 뷰포트 하단에 고정된다는 것입니다!위의 상황은 콘텐츠 성장을 시뮬레이션하기 위해 여러 "lorem ipsum"블록(
<p>
요소)이 배치된 this fiddle에서 실제로 볼 수 있습니다. 콘텐츠가 짧을 때(단지 1-2개의 "lorem ipsum"블록) 바닥글이 완벽하게 작동하지만 블록을 계속 추가하면 바닥글이 뷰포트 하단에 고정되어 뷰포트 높이를 넘어 확장됩니다!반면에 바닥글을 배치하는 대신 그대로 두는 경우(코더의 약 90%가 초기에 수행함) 또 다른 문제가 발생합니다. 이제 바닥글은 스크롤해야 하는 긴 콘텐츠 페이지에 올바르게 배치되지만 짧은 페이지에서는 this fiddle에 표시된 것처럼 콘텐츠가 끝나는 페이지 중간에 바닥글이 표시됩니다.
이 문제를 해결하기 위한 여러 접근 방식이 있을 수 있습니다. 나는 개인적으로 매우 간단하고 이해하기 쉬운 구식 방법을 선호합니다. 게다가 바닥글 위에 "#offset"또는 "#placeholder"와 같은 빈 HTML 요소를 추가할 필요가 없습니다. 필요한 것은 바닥글 위의 모든 HTML 요소가 하나의 컨테이너 div 요소 안에 래핑되어야 한다는 것입니다. 따라서 본체는 다음과 같이 구성되어야 합니다.
HTML
..BODY
....div.container
......header1,
......article1,
........p,
......etc, etc.
....footer
그런 다음 div.container의 최소 높이를 뷰포트 높이에서 바닥글 높이를 뺀 값으로 설정하기만 하면 됩니다. 바닥글의 높이가 55px라고 가정하면 다음과 같이 하면 됩니다.
div.container {
min-height: calc(100vh - 55px);
}
this fiddle에서 이에 대한 작업 데모를 볼 수 있습니다. 점점 더 많은 "lorem ipsum"단락 요소를 추가하기 시작하더라도 바닥글은 다른 요소의 위치 및 콘텐츠 크기에 관계없이 항상 "올바른"위치에 배치됩니다! 이것은 "제대로 배치된 바닥글"이라고 부르는 것입니다.
Reference
이 문제에 관하여(일반적인 CSS 디자인 문제 해결: 페이지 또는 콘텐츠 하단 중 더 낮은 바닥글 배치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/prahladyeri/tackling-a-common-css-design-problem-footer-placement-at-page-or-content-bottom-whichever-is-lower-4k5b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)