Pure CSS Off-Screen Navigation Menu
Origin: http://www.sitepoint.com/pure-css-off-screen-navigation-menu
HTML
<ul class="navigation">
<li class="nav-item"><a href="#">Services</a></li>
<li class="nav-item"><a href="#">About us</a></li>
<li class="nav-item"><a href="#">Contact</a></li>
</ul>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger"></label>
<div class="site-wrap">
Test Test Test Test Test Test Test Test
</div>
CSS
.navigation {
width: 100%;
height: 100%;
position: relative;
z-index: 0;
padding: 0;
}
input[type="checkbox"] {
display: none;
}
.nav-item {
width: 120px;
display: inline-block;
float: left
}
.nav-item a {
display: block;
padding: 1em;
background-color: #666;
color: #FFF;
font-size: 1.2em;
text-decoration: none;
}
.nav-item a:hover {
color: #000;
background-color: #CCC;
}
@media screen and (max-width: 500px) {
.navigation {
width: 100%;
height: 100%;
position: absolute;
top: 0;
right: 0;
z-index: 0;
}
.nav-item {
width: 200px;
float: right;
display: block;
clear: both;
border-top: 1px solid #111;
border-bottom: 1px solid #000;
}
.nav-item a {
display: block;
padding: 1em;
background-color: #666;
color: #FFF;
font-size: 1.2em;
text-decoration: none;
}
.nav-item a:hover {
color: #000;
background-color: #CCC;
}
.site-wrap {
min-height: 100%;
min-width: 100%;
background-color: white;
position: relative;
top: 0;
bottom: 100%;
right: 0;
z-index: 1;
padding: 4em;
background-color: #FFF;
}
.nav-trigger {
position: absolute;
}
label[for="nav-trigger"] {
position: fixed;
right: 15px; top: 15px;
z-index: 2;
height: 30px;
width: 30px;
cursor: pointer;
background-color: #000;
}
.nav-trigger:checked + label {
right: 215px;
}
.nav-trigger:checked ~ .site-wrap {
right: 200px;
}
.nav-trigger + label, .site-wrap {
transition: left 0.2s;
}
/* Reset */
*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;}
html, body { height: 100%; width: 100%; font-family: Helvetica, Arial, sans-serif; }
}