【发布时间】:2020-08-05 06:31:54
【问题描述】:
我目前有一个页面布局,其中一列代表导航,另一列代表内容。
.bg-1{
background-color:orange;
height: 400px;
overflow-y: auto;
}
.bg-2{
background-color: red;
height: 200px
}
.row{
align-items:flex-start;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"/>
<div class='container'>
<div class='row'>
<div class='col-3 bg-1'>
Nav<br/>
Hello<br/>
Hello<br/>
Hello<br/>
I need a scrollbar!<br/>
And only be as tall as my red neighbor!
</div>
<div class='col-9 bg-2'>Content<br/>I can be as tall as I want!</div>
</div>
</div>
现在,我不介意内容 div(红色)增加内容并占用更多高度。 nav 也应该效仿并随着内容 div 的增长而增长。
但是,导航有时也会变得很大。问题是它迫使用户滚动将内容传递到导航的底部。我宁愿它听内容的高度并使用滚动条进行任何溢出。
我应该如何设置我的 css,以便内容 div 可以在导航锁定到内容 div 的高度并使用滚动条进行溢出时尽可能多地增长整个 flex 容器?
我试过了:
为父容器设置最大高度。它不限制导航 div
为导航 div 设置最大高度。我找不到让它与内容 div 匹配的值。
使用对齐项:flex-start。这只会阻止内容 div 的增长,但用户仍然需要经过内容 div 到导航的底部。我希望将重点放在内容上,因此如果导航栏大于内容 div,则导航栏应使用滚动条。
谢谢!
【问题讨论】:
-
我添加了一个答案,是你要找的吗?
标签: html css twitter-bootstrap bootstrap-4 flexbox