fixed-sidebar-vertical-menu

Sidebar with vertical menu, hidden on small screens, being inserted from left. Need to get this layout centered. Using Bootstrap 3.

by Mary Muster

HTML

<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<body>
  <div class="navbar navbar-fixed-top visible-xs">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="offcanvas" data-target=".navbar-collapse">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="/">Small Logo</a>
    </div>
  </div>

  <div class="row-offcanvas row-offcanvas-left">
    <div id="sidebar" class="sidebar-offcanvas col-sm-4">
      <a class="hidden-xs" href="/" title="Startseite aufrufen">Fixed sidebar/menu with big Logo</a>
      <div class="col-md-12">
        <ul class="nav">
          <li><a href="#">start</a></li>
          <li><a href="#">link 1</a></li>
          <li><a href="#">link 2</a></li>
        </ul>
      </div>
    </div>
    <main class="col-sm-8">
      <h1>CONTENT</h1> Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br />Long long text
      <br...

CSS

html,
body,
#sidebar,
.row-offcanvas,
main {
  height: 100%;
}

body {
  color: BLACK;
  padding-top: 90px;
}


/* navbar nicht sichtbar ab pad */

@media screen and (min-width: 768px) {
  body {
    padding-top: 0;
  }
}

a {
  color: white;
}

.navbar {
  background-color: gold;
  padding: 10px 15px;
}

.navbar-header {
  border-bottom: 1px solid Gray;
}


/*
@media (min-width: 768px) {
    .navbar {
        padding-bottom: 20px;
        padding-top: 20px;
    }
    .navbar-header {
        padding-left: 265px;
        border-bottom: none;
    }
}

a.navbar-brand {
    float: none;
}
a.navbar-brand {
    font-size: 2.3em;
    padding-left: 0;
    padding-right: 0;
}

.navbar-brand {
    padding: 0;
    padding-top: 10px;
}
*/

.navbar-toggle {
  margin-right: 0;
  border-radius: 0;
}

.navbar-toggle .icon-bar {
  background-color: white;
  width: 30px;
  height: 5px;
}

.navbar-toggle:hover .icon-bar {
  background-color: orange;
}

#sidebar {
  width: inherit;
  min-width: 250px;
  max-width: 250px;
  background-color: Gray;
  float: left;
  position: relative;
  overflow-y: auto;
  overflow-x: hidden;
}

@media screen and (max-width: 768px) {
  .row-offcanvas {
    position: relative;
    -webkit-transition: all 0.25s ease-out;
    -moz-transition: all 0.25s ease-out;
    transition: all 0.25s ease-out;
    width: calc(100% + 250px);
  }
  .row-offcanvas-left {
    left: -250px;
  }
  .row-offcanvas-left.active {
    left: 0;
  }
  .sidebar-offcanvas {
    position: absolute;
    top: 0;
  }
}

main {
  overflow: auto;
}

JavaScript

jQuery(document).ready(function() {
   jQuery('[data-toggle=offcanvas]').click(function() {
     jQuery('.row-offcanvas').toggleClass('active');
   });
 });