html - Flexbox:将侧边栏高度拉伸(stretch)到父级

标签 html css flexbox bootstrap-4

如何正确地把 child 拉到 parent 的高度?我已经尝试了很多我发现的变体(很多非常复杂),但它对我来说从来没有用过。我更愿意用 flex-box 来做这件事,因为这似乎是最新的方法。这是我的尝试:

<div class="main h-100">
  <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
    <a href class="navbar-brand">Menu</a>
  </nav>
  <div class="container-fluid h-100">
    <div class="row h-100">
      <div class="col-xs-2 bg-light h-100 pr-3 menuContainer">
        <button class="btn btn-outline-primary mt-3 btn-sm btn-block"> Test </button>
        <nav class="navbar navbar-light list">
          <ul class="navbar-nav flex-column">
           <li class="nav-item"><a href="#" class="nav-link">A1</a></li>
           <li class="nav-item"><a href="#" class="nav-link">A1</a></li>

          </ul>
        </nav>
      </div>
      <div class="col-xs-10 p-0">
        Content
      </div>
    </div>
  </div>

body {
  height: 100vh;
}

.bg-light {
  background-color: green !important;
}

.list {
  overflow-y: auto;
  height: 100%;
  align-items:start
}

.menuContainer {
  display: flex;
  flex-flow: row wrap;
}

.list {
  flex: 1;
  background-color: red;
}

http://jsfiddle.net/x1hphsvb/2065/

最后,我想删除滚动条,以便菜单(红色框)从现在开始的位置开始,并在屏幕结束的位置结束。

目标还在于能够放置任何东西而不是 Content 并且 height: 100% 所以它也是一样的。

内容和菜单都可以更大——在这种情况下,我希望他们自己添加一个滚动条——我为此使用了overflow-y: auto

最佳答案

http://jsfiddle.net/x1hphsvb/2083/

html, body {
  height: 100%;
}

.bg-light {
  background-color: green !important;
}

.list {
  overflow-y: auto;
  align-items:start
}

.menuContainer {
  display: flex;
  flex-direction: column;
}

.list {
  flex: 1;
  background-color: red;
}

.site-content {
  height: calc(100% - 56px);
}

主要区别:

  • flex-direction: column 在侧边栏元素上。
  • 移除 .site-content 上的 100% 高度,改为 calc(100% - 56px),这是标题高度。

关于html - Flexbox:将侧边栏高度拉伸(stretch)到父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49260641/

相关文章:

html - CSS3 ASP HTML 不工作

css - 如何使用 svg 椭圆制作星形或十字形?

html - 在 flexbox 元素中获取 100% 高度的 div

jquery - 圆滑的轮播 - 删除底部边距时遇到问题

css - 更改产品页面上产品信息的顺序

html - 为什么 <nav> 中的 <a> 元素在宽度上丢失了几个像素?

javascript - jquery if 语句返回 return Wearg 语句

php - 如何在不发布表单的情况下检查表单中的重复用户名,并将焦点放在用户名(如果已存在)上?

css - 最小高度 :100% do not apply height:100% 的 child

html - 使菜单和图像出现在同一行