Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating a fixed sidebar alongside a centered Bootstrap 3 grid

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; } 
like image 772
Carl Edwards Avatar asked Dec 13 '13 02:12

Carl Edwards


People also ask

How do I center align a grid in Bootstrap?

Use d-flex justify-content-center on your column div. This will center everything inside that column.

How do I center content in Bootstrap 3?

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.

What is Col MD 6 in Bootstrap?

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)


1 Answers

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

like image 155
eggy Avatar answered Nov 04 '22 22:11

eggy