Membuat Menu Navbar Responsive dengan CSS

by -

Cara membuat menu navbar responsive tanpa Javascript, tapi dengan menggunakan Media Query CSS3 (@media screen) kita akan membuat menu navbar yang responsive dengan 2 tampilan yaitu tampilan mobile dengan screen maksimal 768px dan tampilaan web dengan screen lebih dari 768px.

<header>
    <nav class="navbar">
      <h1 class="logo"><a href="">URLxyz</a></h1>
      <input type="checkbox" id="nav" />
      <label for="nav"></label>
      <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </nav>
</header>
ul {
    list-style: none;
}
.navbar {
    background: #23282d;
    overflow: hidden;
}
nav ul > li {
    float: left;
    line-height: 24px;
    transition: all .25s linear 0s;
}
nav ul > li a {
    display: block;
    text-align: left;
    padding: 23px 18px;
    font-weight: 700;
    font-size: 16px;
    color: #FFF;
    text-transform: uppercase;
    text-decoration: none;
}
nav ul > li a:hover {
    color: #000
}
nav ul > li:hover {
    background: #FFF;
}
nav input[type="checkbox"], nav label {
    display: none;
}
@media screen and (max-width: 768px) {
nav ul {
    display: none;
}
.navbar label {
    display: block;
    background: #222;
    width: 40px;
    height: 40px;
    cursor: pointer;
    position: absolute;
    right: 20px;
    top: 15px;
}
nav label:after{
  content:'';
  display: block;
  width: 30px;
  height: 5px;
  background: #777;
  margin: 7px 5px;
  box-shadow: 0 10px 0 #777, 0 20px 0 #777
}
nav [type="checkbox"]:checked ~ ul {
    display: block;
    z-index: 9999;
    position: absolute;
    right: 20px;
    left: 20px;
    top: 70px;
}
nav ul > li {
    display: block;
    width: 100%;
    text-align: left;
    background: #222;
    text-indent: 20px;
}
}

Lihat Demo