v4 bootstrap full height sidebar

风格不统一 提交于 2019-12-01 16:14:16

问题


I using the latest version of bootstrap and my siderbar is too short and not full height.
You can view it from here: http://srv.sniperjum.com/sh1omi/bootstrap-dev/
CSS: http://srv.sniperjum.com/sh1omi/bootstrap-dev/css/style.css
This problem is from my CSS or is it a problem from the bootstrap? and how can I fix it?

CSS

li.active{
    background-color: #428bca;
}
li {
    padding-bottom: 5px;
    padding-top: 5px;
}
.sidebar{
    background-color: #f5f5f5;
    padding-right: 20px;
    padding-top: 20px;
}

/* Sidebar navigation */
.nav-sidebar {
    margin-right: -21px; /* 20px padding + 1px border */
    margin-bottom: 20px;
    margin-left: -20px;
}
.nav-sidebar > li > a {
    padding-right: 20px;
    padding-left: 20px;
}
.nav-sidebar > .active > a,
.nav-sidebar > .active > a:hover,
.nav-sidebar > .active > a:focus {
    color: #fff;
    background-color: #428bca;
}
button{
    color: #fafafa
}

HTML

<nav class="navbar navbar-dark navbar-full bg-inverse">
    <button type="button" class="navbar-toggler" onclick="ToogleNavbar()">&#9776;</button>
</nav>
<div class="container-fluid">
    <div class="row" >
        <div class="col-sm-3 col-md-2 sidebar" id="Navbar">
            <ul class="nav nav-sidebar">
                <li class='active'><a href="/">Home</a></li>
                <li><a href="../notes">Notes</a></li>
                <li><a href="../chat">Chat</a></li>
                <li><a href="../rss">RSS</a></li>
            </ul>
        </div>
        <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2">\</div>
    </div>
</div>

回答1:


Bootstrap 4 has changed since this question was asked, but you can make the sidebar full height using min-height..

.sidebar{
    background-color: #f5f5f5;
    padding-right: 20px;
    padding-top: 20px;
    min-height: calc(100vh - 50px);
}

http://www.codeply.com/go/oiByWVrIbe (Bootstrap 4 alpha 6)


Update Bootstrap 4.1

Flexbox can be used to allow the container and its child divs (row, col and sidebar) to fill height...

https://www.codeply.com/go/fz2R7nUwue


Related: Create a responsive navbar sidebar "drawer" in Bootstrap 4?




回答2:


The easier way is to do something like that:

.sidebar {
    height: calc(100vh - 54px); /* 54 pixel is the height of your .navbar */
}



回答3:


.sidebar{ 
 position: absolute; 
 width: 250px; 
 height: 100%; }

The height attribute is used to set the height of the sidebar.

For a full length side-bar a value of 100% is to be given. For a half screen length a value of 50% is given So on and so forth.

This should help.




回答4:


You can try this instead of yours

remove these two bootstrap cols
<div class="col-sm-3 col-md-2 sidebar" id="Navbar"> If you use this cols the position of the property will be relative i think it's better to remove those cols and use this css.

  width: 210px;
  height: 100%;
  position: fixed;


来源:https://stackoverflow.com/questions/37113533/v4-bootstrap-full-height-sidebar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!