I'd like to create a fixed sidebar that exists outside my centered Bootstrap Grid. The challenge I face when attempting to do this is determining what additional styles to apply/overwrite to my .container
so that it doesn't overlap my sidebar when the screen is resized.
For starters I'm only using the grid portion of the css framework so the .container
, .row
and .col-md-12
is code pulled from the bootstrap.css
file itself and is not custom. Also keep in mind I'm using Bootstrap 3, so please, no suggestions for a fluid grid solution for Bootstrap 2 that is often asked about in previous threads.
HTML
<div id="left-nav"></div> <div class="container"> <div class="row"> <div class="col-md-12"> <p>Lorem ipsum dolor sit amet, nunc dictum at.</p> </div> </div> </div>
CSS
html, body { height: 100%; width: 100%; } #left-nav { background: #2b2b2b; position: absolute; top: 0px; left: 0px; height: 100%; width: 250px; }
Use d-flex justify-content-center on your column div. This will center everything inside that column.
There can be two ways: By adding text-align: center; in our CSS code for the tds. By adding the “ text-center” class of Bootstrap 3 to a td element also works out of the box.
col-sm- (small devices - screen width equal to or greater than 576px) . col-md- (medium devices - screen width equal to or greater than 768px) . col-lg- (large devices - screen width equal to or greater than 992px)
As drew_w said, you can find a good example here.
HTML
<div id="wrapper"> <div id="sidebar-wrapper"> <ul class="sidebar-nav"> <li class="sidebar-brand"><a href="#">Home</a></li> <li><a href="#">Another link</a></li> <li><a href="#">Next link</a></li> <li><a href="#">Last link</a></li> </ul> </div> <div id="page-content-wrapper"> <div class="page-content"> <div class="container"> <div class="row"> <div class="col-md-12"> <!-- content of page --> </div> </div> </div> </div> </div> </div>
CSS
#wrapper { padding-left: 250px; transition: all 0.4s ease 0s; } #sidebar-wrapper { margin-left: -250px; left: 250px; width: 250px; background: #CCC; position: fixed; height: 100%; overflow-y: auto; z-index: 1000; transition: all 0.4s ease 0s; } #page-content-wrapper { width: 100%; } .sidebar-nav { position: absolute; top: 0; width: 250px; list-style: none; margin: 0; padding: 0; } @media (max-width:767px) { #wrapper { padding-left: 0; } #sidebar-wrapper { left: 0; } #wrapper.active { position: relative; left: 250px; } #wrapper.active #sidebar-wrapper { left: 250px; width: 250px; transition: all 0.4s ease 0s; } }
JSFIDDLE
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With