Responsive Pure CSS Dropdown Navigation Menu

Category: CSS & CSS3 , Menu & Navigation | March 21, 2017
Author: mayursuthar
Views Total: 5,265
Official Page: Go to website
Last Update: March 21, 2017
License: MIT

Preview:

Responsive Pure CSS Dropdown Navigation Menu

Description:

A fully responsive, CSS-only navigation that breaks down into a hamburger dropdown menu when the viewport size is smaller than a breakpoint specified in the CSS3 media queries.

How to use it:

Create the HTML for the hamburger menu toggle.

<label for="toggle-1" class="toggle-menu">
<ul>
  <li></li>
  <li></li>
  <li></li>
</ul>
</label>
<input type="checkbox" id="toggle-1">

Create a normal navigation list as this:

<nav>
  <ul>
    <li><a href="#logo"><i class="fa fa-home"></i>Home</a></li>
    <li><a href="#about"><i class="fa fa-user"></i>About</a></li>
    <li><a href="#portfolio"><i class="fa fa-thumb-tack"></i>Portfolio</a></li>
    <li><a href="#services"><i class="fa fa-gears"></i>Services</a></li>
    <li><a href="#gallery"><i class="fa fa-picture-o"></i>Gallery</a></li>
    <li><a href="#contact"><i class="fa fa-phone"></i>Contact</a></li>
  </ul>
</nav>

The primary CSS styles for the navigation menu.

header {
  width: 100%;
  display: table;
  background-color: #fde428;
  margin-bottom: 50px;
}

#logo {
  float: left;
  font-size: 24px;
  text-transform: uppercase;
  color: #002e5b;
  font-weight: 600;
  padding: 20px 0px;
}

nav {
  width: auto;
  float: right;
}

nav ul {
  display: table;
  float: right;
}

nav ul li { float: left; }

nav ul li:last-child { padding-right: 0px; }

nav ul li a {
  color: #002e5b;
  font-size: 18px;
  padding: 25px 20px;
  display: inline-block;
  transition: all 0.5s ease 0s;
}

nav ul li a:hover {
  background-color: #002e5b;
  color: #fde428;
  transition: all 0.5s ease 0s;
}

nav ul li a:hover i {
  color: #fde428;
  transition: all 0.5s ease 0s;
}

nav ul li a i {
  padding-right: 10px;
  color: #002e5b;
  transition: all 0.5s ease 0s;
}

.toggle-menu ul {
  display: table;
  width: 25px;
}

.toggle-menu ul li {
  width: 100%;
  height: 3px;
  background-color: #002e5b;
  margin-bottom: 4px;
}

.toggle-menu ul li:last-child { margin-bottom: 0px; }

input[type=checkbox], label { display: none; }

Style the dropdown menu when the screen size is smaller than 980px.

@media only screen and (max-width: 980px) {

header { padding: 20px 0px; }

#logo { padding: 0px; }

input[type=checkbox] {
  position: absolute;
  top: -9999px;
  left: -9999px;
  background: none;
}

input[type=checkbox]:fous {
  background:none;
}

label {
  float: right;
  padding: 8px 0px;
  display: inline-block;
  cursor: pointer;
}

input[type=checkbox]:checked ~ nav { display: block; }

nav {
  display: none;
  position: absolute;
  right: 0px;
  top: 53px;
  background-color: #002e5b;
  padding: 0px;
  z-index: 99;
}

nav ul { width: auto; }

nav ul li {
  float: none;
  padding: 0px;
  width: 100%;
  display: table;
}

nav ul li a {
  color: #FFF;
  font-size: 15px;
  padding: 10px 20px;
  display: block;
  border-bottom: 1px solid rgba(225,225,225,0.1);
}

nav ul li a i {
  color: #fde428;
  padding-right: 13px;
}

}

 

You Might Be Interested In:


Leave a Reply