Wea*_*ian 5 html css overflow flexbox flex-grow
我正在尝试构建一个导航面板,该面板的顶部有一个固定高度的主导航栏,固定在屏幕底部的固定高度的辅助导航栏,以及一个位于其间的容器,该容器填充剩余空间并可滚动,具体取决于里面的项目列表的长度。
我正在学习使用flexbox
,并认为我可以使用 flex-grow 和 Overflow:hidden 来完成此任务,但是我遇到了一些麻烦。
html,
body {
height: 100%;
}
.container-main {
display: flex;
height: 100%;
flex-flow: column;
}
.nav-bar {
display: flex;
height: 36px;
background-color: grey;
}
.container-dd {
height: 100%;
display: flex;
flex-flow: column;
}
.dd-fill {
display: flex;
flex-flow: column;
flex: 1 1 auto;
background-color: green;
overflow: hidden;
}
.dd-bot {
display: flex;
height: 100px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container-main">
<div class="nav-bar">top nav bar</div>
<div class="container-dd">
<div class="dd-fill">
<p>list item</p>
<p>list item</p>
<p>list item</p>
<p>list item</p>
<p>list item</p>
<p>list item</p>
<p>list item</p>
<p>list item</p>
<p>list item</p>
</div>
<div class="dd-bot">sticky footer</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
您可以从小提琴中看到,不适合 div dd-fill 的内容是无法访问的,并且没有滚动条。此外,辅助导航栏的固定高度也没有被强制执行。有谁知道为什么它会这样?提前致谢。
您可以通过将隐藏更改为自动并使用最小高度(我有时也会添加最大高度以确保它不会在更大的屏幕中增长)而不是顶部和底部位的高度来解决溢出问题:
html,
body {
height: 100%;
margin: 0;
}
.container-main {
display: flex;
height: 100%;
flex-flow: column;
}
.nav-bar {
display: flex;
min-height: 36px; /* use min-height */
background-color: grey;
}
.container-dd {
height: 100%;
display: flex;
flex-flow: column;
}
.dd-fill {
display: flex;
flex-flow: column;
flex: 1 1 auto;
background-color: green;
overflow: auto; /* use auto so scrollbar appears */
}
.dd-bot {
display: flex;
min-height: 100px; /* use min-height */
}
Run Code Online (Sandbox Code Playgroud)
<div class="container-main">
<div class="nav-bar">top nav bar</div>
<div class="container-dd">
<div class="dd-fill">
<p>list item</p>
<p>list item</p>
<p>list item</p>
<p>list item</p>
<p>list item</p>
<p>list item</p>
<p>list item</p>
<p>list item</p>
<p>list item</p>
</div>
<div class="dd-bot">sticky footer</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4501 次 |
最近记录: |