我正在尝试制作具有固定侧边栏宽度的双列全高布局。为此,我使用display: table; display: table-cell;
方法。到目前为止,这是我的代码:
HTML:
<nav class="navbar navbar-inverse navbar-static-top" role="navigation">
<div class="navbar-header">
<a class="navbar-brand" href="#">Brand</a>
</div>
<ul class="nav navbar-nav">
<li><a href="#">Home</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</nav>
<div class="page-wrap">
<div class="container">
<div class="page-sidebar">
<ul>
<li><a href="#">there'll be navigation</a></li>
</ul>
</div>
<div class="page-content">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellendus non?</p>
</div>
</div>
</div>
CSS:
html, body {
height: 100%;
}
.navbar {
margin: 0;
}
.page-wrap {
height: 100%;
}
.page-wrap > .container {
display: table;
table-layout: fixed;
height: 100%;
}
.page-sidebar {
display: table-cell;
vertical-align: top;
width: 200px;
height: 100%;
background-color: #ececec;
}
.page-sidebar ul {
margin: 0;
padding: 0;
list-style-type: none;
}
.page-content {
display: table-cell;
vertical-align: top;
width: 100%;
height: 100%;
}
一切似乎都很好,但是一件事。虽然几乎没有内容,但页面底部还有额外的空间,这使得滚动条可见。是什么导致它,以及如何处理它的最佳方法?非常感谢。
答案 0 :(得分:4)
最好使.page-wrap类高度自动 例如:
.page-wrap{
height:auto
}
答案 1 :(得分:1)
很抱歉打算将此作为答案发布。这应该为你排序。
答案 2 :(得分:0)
从html中移除高度:100%; ,然后将无法看到正文和滚动条。
答案 3 :(得分:0)
问题是由margin
ul
引起的
如果你添加
ul {
margin: 0 !important;
}
然后它会消失: Running Demo
要处理此类问题,最好使用 CSS重置,like described in this answer将HTML重置为默认行为。
答案 4 :(得分:0)
好的,最终为padding-bottom: 51px
设置body
(导航栏高度+ 1px底部边框)做诀窍,就像魅力一样:)