html - 1fr 网格单元扩展超过 100%

标签 html css css-grid

我有以下网格,我想将其精确地跨越屏幕的高度 - 不能少,不能多。在网格中,我有一个固定页眉(一个)、一个固定页脚(三个)和一个可滚动内容(两个)

.grid-container {
    display: grid;
    grid-template-areas:
        "one"
        "two"
        "three"
        ;
    grid-template-rows: 33px 1fr 34px;
    height: 100vh;
}

发生的情况是,如果 two 内的内容变得太大,整个网格的高度现在会大于视口(viewport)。结果,我的页脚被推下,而我想滚动内容并将页脚保持在原来的位置。

我知道我可以通过 position:fixed 实现我想要的效果,但这是一个更复杂网格的精简示例。感谢任何帮助,如果可能的话,我更喜欢保留网格方法。为了您的方便,我整理了一个 fiddle 。谢谢!

https://jsfiddle.net/x6stfc01/1/

HTML 为了您的方便

<div class="grid-container">
  <div class="one"></div>
  <div class="two">
    Start of Content
    <div style="height: 5000px"></div>
    End of Content
  </div>
  <div class="three"></div>
</div>    

最佳答案

您可以将 overflow-y:scroll 添加到 two 项或 overflow-y: auto (更好)

body {
  margin: 0;
}

.grid-container {
  display: grid;
  grid-template-areas: "one" "two" "three";
  grid-template-rows: 33px 1fr 34px;
  height: 100vh;
}

.one {
  grid-area: one;
  background-color: blue;
}

.two {
  grid-area: two;
  background-color: yellow;
  overflow-y: scroll;
}

.three {
  grid-area: three;
  background-color: red;
}
<html>

<head>
</head>

<body>
  <div class="grid-container">
    <div class="one"></div>
    <div class="two">
      Start of Content
      <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>      End of Content
    </div>
    <div class="three"></div>
  </div>
</body>

</html>

关于html - 1fr 网格单元扩展超过 100%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55245916/

相关文章:

javascript - 修改jQuery函数(抓取每个DOM元素)

html - 内联 block 容器中同一行文本上的 SVG img

css - 嵌入时我们可以像导入时一样使用谷歌字体吗

html - 如何使用网格模板区域跨越多个网格元素的图像?

html - 无法居中导航菜单

html - 如何删除到达我的网页的 CSS 代码?

html - 使用 <a> 标签的可点击 <li> - 无需使用 JS。它是合法的 HTML 吗?

jquery - Bootstrap - 如何在 bootstrap div 类中将图像从顶部和底部居中

html - 使用定义列表和网格布局创建表格

css - 如何设计元素之间的空间样式?