Responsive menu with hamburger
Responsive menu with hamburg and submenu :>
by oktaviardi pratama
HTML
<header>
<a href="http://krystianrygiel.com/" class="logo">krystian<strong>rygiel_</strong></a>
<a class="hamburger-menu">Menu</a>
<nav class="main-menu hide">
<ul class="ul-main-menu">
<li><a href="link-sekcji-1">Sekcja 1</a>
<ul class="submenu">
<li><a href="link-sekcji-2">Sekcja 2</a></li>
<li><a href="link-sekcji-3">Sekcja 3</a></li>
<li><a href="link-sekcji-4">Sekcja 4</a></li>
</ul>
</li>
<li><a href="link-sekcji-2">Sekcja 2</a></li>
<li><a href="link-sekcji-3">Sekcja 3</a></li>
<li><a href="link-sekcji-4">Sekcja 4</a></li>
</ul>
</nav>
</header>
CSS
* {padding: 0; margin: 0;}
header {
width: 100%;
box-sizing: border-box;
position: relative;
background: #243066;
min-height: 100%;
height: 100%;
padding: 20px 20px;
}
a.logo {
color: #fff;
font-size: 2.4rem;
text-decoration: none;
font-family: 'Open Sans', sans-serif;
}
.hamburger-menu {
border: 0;
color: transparent;
width: 32px;
height: 32px;
background: url('https://cdn4.iconfinder.com/data/icons/wirecons-free-vector-icons/32/menu-alt-512.png');
background-size: 32px 32px;
right: 20px;
top: 20px;
position: absolute;
display: none;
}
nav.main-menu {
position: absolute;
right: 20px;
top: 20px;
}
nav.main-menu > ul.ul-main-menu {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
}
nav.main-menu ul.ul-main-menu > li {
float: left;
padding: 8px 12px;
margin-right: 5px;
display: block;
}
nav.main-menu ul.ul-main-menu > li:last-child {
margin-right: 0;
}
nav.main-menu ul.ul-main-menu > li a {
color: #fff;
text-decoration: none;
}
nav.main-menu ul.ul-main-menu > li a:hover {
color: #76cedf;
}
nav.main-menu ul.ul-main-menu li:hover > ul.submenu {
display: block;
}
nav.main-menu ul.ul-main-menu li ul.submenu {
display: none;
position: absolute;
margin-top: 5px;
padding: 0;
}
nav.main-menu ul.ul-main-menu li ul.submenu > li {
padding: 10px;
display: block;
background: #76cedf;
}
nav.main-menu ul.ul-main-menu li ul.submenu li a:hover {
color: #243066;
}
@media screen and (min-width:240px) and (max-width:768px) {
.hide {
display: none;
}
.show {
display: block;
}
nav.main-menu {
border-top: 1px solid #000;
position: relative;
top: 20px;
right: 0;
height: 100%;
}
nav.main-menu ul.ul-main-menu {
width: 100%;
}
nav.main-menu ul.ul-main-menu li {
width: 100%;
float: none;
text-align: center;
padding: 10px 0;
}
nav.main-menu ul.ul-main-menu li ul.submenu {
position: relative;
...
JavaScript
$('a.hamburger-menu').click(function() {
$('nav.main-menu, .hide').toggleClass('show');
});