기술나눔

[CSS2 학습] 그리드 레이아웃 - 페이지의 바닥글 부분이 웹 페이지 하단에 유지됩니다.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

화면 높이가 페이지를 지탱할 만큼 중간 콘텐츠의 높이가 충분하지 않은 경우 페이지의 바닥글 부분을 페이지의 바닥글(하단)에 유지하는 방법.

1. 먼저 위 그림의 디스플레이 효과를 살펴보세요.

2. 소스코드 제공

2.1, HTML 부분

  1. <body>
  2. <header>头部</header>
  3. <main>主区域</main>
  4. <footer>底部</footer>
  5. </body>

2.2, CSS 부분

  1. <style>
  2. html, body {
  3. margin: 0;
  4. padding: 0;
  5. width: 100%;
  6. height: 100%;
  7. }
  8. body {
  9. min-height: 100vh;
  10. display: grid;
  11. grid-template-rows: auto 1fr auto;
  12. }
  13. header {
  14. background: aquamarine;
  15. height: 40px;
  16. line-height: 40px;
  17. text-align: center;
  18. }
  19. footer {
  20. background: aquamarine;
  21. height: 50px;
  22. line-height: 50px;
  23. text-align: center;
  24. }
  25. main {
  26. margin: 0 auto;
  27. background: aqua;
  28. width: 80%;
  29. }
  30. </style>

3. 모든 코드

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>gridbox布局</title>
  6. <style>
  7. html, body {
  8. margin: 0;
  9. padding: 0;
  10. width: 100%;
  11. height: 100%;
  12. }
  13. body {
  14. min-height: 100vh;
  15. display: grid;
  16. grid-template-rows: auto 1fr auto;
  17. }
  18. header {
  19. background: aquamarine;
  20. height: 40px;
  21. line-height: 40px;
  22. text-align: center;
  23. }
  24. footer {
  25. background: aquamarine;
  26. height: 50px;
  27. line-height: 50px;
  28. text-align: center;
  29. }
  30. main {
  31. margin: 0 auto;
  32. background: aqua;
  33. width: 80%;
  34. }
  35. </style>
  36. </head>
  37. <body>
  38. <header>头部</header>
  39. <main>主区域</main>
  40. <footer>底部</footer>
  41. </body>
  42. </html>

4. 원리

1.예약min-height: 100vh이 방법을 사용하지만grid-template-rows오세요 공간.

2. 이 방법의 비결은 특별한 그리드 셀을 사용하는 것입니다.fr 。 fr "사본"을 나타내며 이를 사용하려면 브라우저가 이 열이나 행에 할당할 남은 공간의 사용 가능한 "사본"을 계산해야 합니다. 이 경우 머리글과 바닥글 사이의 사용 가능한 공간을 모두 채우며 기본 영역을 자동으로 채울 수 없는 Flexbox 접근 방식의 "결함"도 해결합니다.