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;
...