html - 具有 100% 高度的 Flexgrid chalice

标签 html css flexbox

我对“ chalice ”布局进行了调整,您会注意到 #main 有一个 min-height: 800px。我真正想要的是 100% 的高度,然后当我在 部分 中添加内容时,布局的其余部分继续向下(就像现在一样)。

知道如何使用 100% 高度而不明确设置 800px 来实现这一点吗?

body {
  font: 24px Helvetica;
  background: #999999;
  margin: 0;
  padding: 0;
  height: 100%;
}

#main {
  min-height: 800px;
  margin: 0;
  padding: 0;
  display: flex;
  flex-flow: row;
}

#main>article {
  border: 1px solid #cccc33;
  background: #dddd88;
  flex: 3 1 60%;
  order: 3;
}

#main>nav {
  border: 1px solid #8888bb;
  background: #ccccff;
  flex: 1 6 70px;
  order: 1;
  max-width: 70px;
  min-width: 70px;
}

#main>aside {
  border: 1px solid #8888bb;
  background: #ccccff;
  flex: 1 6 300px;
  order: 2;
  max-width: 300px;
  min-width: 300px;
}

header {
  display: block;
  padding: 5px;
  min-height: 70px;
  border: 1px solid #eebb55;
  background: #ffeebb;
}

section {
  margin: 10px;
}

.container {
  margin: 0;
  padding: 0;
  display: flex;
  flex-flow: row;
}

.container>.field {
  width: 100%;
  background: #dddd88;
  order: 2;
}

.container>.left {
  width: 4px;
  background: black;
  order: 1;
}

.container>.right {
  width: 4px;
  background: black;
  order: 3;
  display: flex;
}

.top,
.bottom {
  display: block;
  height: 4px;
  background: red;
}
<div id='main'>
  <article>
    <header>header</header>
    <section>
      <div class="top"></div>
      <div class="container">
        <div class="field">
          Sub Container w/ borders
        </div>
        <div class="left"></div>
        <div class="right"></div>
      </div>
      <div class="bottom"></div>
    </section>
  </article>
  <nav>nav</nav>
  <aside>aside</aside>
</div>

最佳答案

如果您希望元素占据 100% 的视口(viewport)高度,并且可以选择扩展以容纳额外的内容,请使用 min-height: 100vh ( demo )。

由于以下帖子中解释的原因,百分比高度不如视口(viewport)百分比高度高效且易于使用。

关于html - 具有 100% 高度的 Flexgrid chalice ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44953343/

相关文章:

html - 如何使用 float css 属性渲染一个没有任何内容的 span 标签?

javascript - 用js聚焦和取消聚焦div的元素

CSS3 变换比例 - 模糊桌面和完美移动

html - 如何让 flexbox 将中心固定和底部固定的 child 放在一起?

html - Flex Basis 行为不符合预期,但最大宽度有效

html - 防止文本环绕 awesomefonts 图像

PHP 插入过滤器并将其打印在图像上

javascript - 尝试在 Django 中构建一个使用 chessboard.js 显示棋盘的网页

css - 如何在 sass-loader 和 ExtractTextPlugin 完成后运行 POSTCSS?

html - 使用 flexbox 将元素与底部对齐