html - 在不使用 100vh 的情况下强制 div 为整页高度

标签 html reactjs css css-grid

这是我目前元素中的简化 HTML 和 CSS 代码。本质上,因为我使用的是 ReactJS 和路由,所以我无法将所有内容都包装在另一个带有 css 网格的容器中,因此我正在寻找解决方案以在“侧边栏”和“内容”类上获得完整的页面高度。

我知道我可以使用 100vh 并从中减去页眉的高度,但在这种情况下,页眉没有固定高度,所以我正在寻找替代方案。

.header {
  display: grid;
  grid-template-columns: auto auto;
  background-color: lightblue;
}

.main {
  display: grid;
  grid-template-columns: 0.2fr 1fr;
}

.sidebar {
  background-color: lightpink;
  height: 100%;
}

.content {
  background-color: orange;
  height: 100%;
}
<div class="header">
  <div>
    One
  </div>
  <div>
   Two
  </div>
</div>
<div class="main">
  <div class="sidebar">
    Menu
  </div>
  <div class="content">
    Content
  </div>
</div>

http://jsfiddle.net/de5ut6np/39/

最佳答案

你可以把 body 看作是主要的容器:

html {
 height:100%;
}

body {
 margin:0;
 height:100%;
 display: grid;
 grid-template-rows: max-content 1fr;
}

.header {
  display: grid;
  grid-template-columns: auto auto;
  background-color: lightblue;
}

.main {
  display: grid;
  grid-template-columns: 0.2fr 1fr;
}

.sidebar {
  background-color: lightpink;
  height: 100%;
}

.content {
  background-color: orange;
  height: 100%;
}
<div class="header">
  <div>
    One<br>
    more
  </div>
  <div>
   Two
  </div>
</div>
<div class="main">
  <div class="sidebar">
    Menu
  </div>
  <div class="content">
    Content
  </div>
</div>

关于html - 在不使用 100vh 的情况下强制 div 为整页高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51678360/

相关文章:

html - 使用CSS每秒更改div边框颜色的动画

javascript - React Native 布局动画不是动画?还是做错了?

html - 在链接内使用 Button 实现 Modal 的问题

javascript - 如何使用 php、ajax 和 jquery 将数据库中的设置值调用到 <label> 中

javascript - 使用 jQuery 选择中的 setCustomValidity 和 reportValidity 不起作用

javascript - react-pdf-js - 未捕获( promise )e {name : "InvalidPDFException", message: "Invalid PDF structure"}

reactjs - 如何获取 enzyme 中的根标签名称?

javascript - 如何禁用滚动而不隐藏它?

javascript - 如何在同一幻灯片中添加另一个带有图像的 div?

javascript - 删除下拉列表中的垂直滚动条