CSS Off Canvas Menu

für mozilo

by marusti

HTML

<div class='wrapper'>

  <input data-function='swipe' id='swipe' type='checkbox'>
  <label class="menuicon" data-function='swipe' for='swipe'><span></span></label>

  <div class='content'>
    <h1 class="heading1">Pure CSS Off Canvas Menu</h1>
    <h2 class="heading2">with Flexbox & without JS</h2>

    <h1>HTML Ipsum Presents</h1>

    <p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em>      Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci,
      sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>

    <h2>Header Level 2</h2>

    <ol>
      <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
      <li>Aliquam tincidunt mauris eu risus.</li>
    </ol>

    <blockquote>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus
        turpis elit sit amet quam. Vivamus pretium ornare est.</p>
    </blockquote>

    <h3 class="heading3">Header Level 3</h3>

    <ul>
      <li class="listitem">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
      <li>Aliquam tincidunt mauris eu risus.</li>
    </ul>

    <pre><code>
#header h1 a {
  display: block;
  width: 300px;
  height: 80px;
}
</code></pre>
    <ul>
      <li>Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</li>
      <li>Praesent...

CSS

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  height: 100vh;
}

body {
  color: #444;
  background: #444;
  overflow-x: hidden;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
}

.wrapper {
  display: flex;
  min-height: 100%;
}

input[data-function*='swipe'] {
  position: absolute;
  opacity: 0;
}

label[data-function*='swipe'] {
  position: absolute;
  top: 30px;
  left: 30px;
  z-index: 1;
  display: block;
  width: 42px;
  height: 42px;
  text-align: center;
  color: #444;
  cursor: pointer;
  transform: translate3d(0, 0, 0);
  transition: transform .3s;
}

input[data-function*='swipe']:checked ~ label[data-function*='swipe'] {
  transform: translate3d(260px, 0, 0);
}

.content {
  flex: 1;
  padding: 80px 30px;
  background: #eee;
  box-shadow: 0 0 5px black;
  transform: translate3d(0, 0, 0);
  transition: transform .5s;
}

input[data-function*='swipe']:checked ~ .content {
  transform: translate3d(260px, 0px, 0px);
  opacity: .8
}

input[data-function*='swipe']:checked ~ .sidebar {
  transform: translate3d(0px, 0px, 0px);
}

input[data-function*='swipe']:checked ~ .sidebar .menu li {
  width: 100%;
}

.sidebar {
  transform: translate3d(-260px, 0px, 0px);
  position: absolute;
  width: 260px;
  background: #444;
  color: #eee;
  left: 0;
  height: 100%;
  transition: all .3s;
}

.menulable {
  text-align: center;
  font-size: 30px;
  margin-top: 7px
}

.mainmenu li {
  padding: 10px;
  list-style: none;
  width: 0%;
  opacity: .8
}

.mainmenu li a {
  color: #fff;
  display: block;
  text-decoration: none;
  padding: 5px 0px 5px 0;
  margin: 0 20px;
}

.menuactive,
.submenuactive {
  background: rgba(238, 238, 238, 0.1)
}

.menuicon {
  position: absolute;
  top: 10px;
  left: 10px;
  display: block;
  cursor: pointer;
  height: 21px;
  width: 25px;
}

.menuicon span {
  display: block;
  top: 8px;
  width: 25px;
  height: 5px;
  background-color: #000;
  position: relative;
 ...