html - 在 CSS 中设置高度以从页面中间到达视口(viewport)底部

标签 html css flexbox

这可能吗?我有以下布局:

<div class="toolbar">
</div>

<div class="dates-bar">
</div>

<div class="search-bar">
</div>

<div class="scroll-view">
    <table class="table-view">
        <tr><td>...</td></tr>
    </table>
</div>

我需要 ScrollView 延伸到视口(viewport)的底部,所以如果 number of rows * height of the row 从 ScrollView 溢出,它将滚动。

这样我就可以将 ScrollView 上方的所有 block 保持“固定”。我不能为这些元素使用固定位置,因为它们位于另一个容器内,并且该容器使用 flexbox,所以我没有宽度和高度。

我的尝试是 "height: 100%"和 "height: 100vh" 但我需要像 "calc(100% - height(.search-bar) - height( .dates-bar) - height(.toolbar)"

我能做什么?我不想为此使用 JavaScript。如果可以使用 flexbox,我会使用它。

编辑:这是问题的关键:http://jsfiddle.net/c38p8e70/

最佳答案

我认为这就是您想要做的。

body {margin:0;}
div {
  height: 50px;
  background: blue;
}

.scroll-view {
  position: absolute;
  height: 100%;
  width: 100%;
  background: yellow;
  overflow: auto;
}
<div class="toolbar">

</div>

<div class="dates-bar">

</div>

<div class="search-bar">

</div>

<div class="scroll-view-wrapper">
  <div class="scroll-view">
    <table class="table-view">
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
      <tr>
        <td>...</td>
      </tr>
    </table>
  </div>
</div>

关于html - 在 CSS 中设置高度以从页面中间到达视口(viewport)底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31051911/

相关文章:

javascript - 使用表单(选择选项)和 JavaScript 更改多个 DIV 类

css - 用CSS定位div框

仅在特定 id 下的元素的 CSS

html - 兄弟元素继承不透明度?

html - 如何在导航栏中间对齐元素?

jquery - 自定义列宽

javascript - 单击 li 时的左动画

css - 在 Chrome、Safari 和 Edge 中显示 flex 对齐不正确,但在 Firefox 中正确

css - 响应式布局,其中左列可能会向右移动

java - 用于查找 <link rel ="stylesheet"标签的正则表达式