HTML CSS Responsive Header (mobile friendly navigation menu)

mobile friendly navigation menu

Every website have a header section with navigation menu. It’s important to make it fully responsive. In this post, I am going to teach you how you can create a mobile friendly, animated header navigation menu which will be perfectly fit in every device.

Source Code is given below:

HTML

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" type="text/css" href="style.css">
	<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<!-- Desktop header begin -->
<div class="header">
	<div>
		<h2>MaduWebTech</h2>
	</div>
	<ul id="menu">
		<li><a href=""><i class="fa fa-home"></i> Home</a></li>
		<li><a href=""><i class="fa fa-cog"></i> Services</a></li>
		<li><a href=""><i class="fa fa-users"></i> Team</a></li>
		<li><a href=""><i class="fa fa-info-circle"></i> About</a></li>
		<li><a href=""><i class="fa fa-phone"></i> Contact</a></li>
	</ul>
</div>
<!-- Desktop header end -->
<!-- Mobile header begin -->
<div class="mb-header">
	<div class="top-bar">
		<div><h2>MaduWebTech</h2></div>
		<div>
			<span onclick="show_menu()" id="show"><i class="fa fa-bars" aria-hidden="true"></i></span>
			<span onclick="hide_menu()" id="hide">×</span>
		</div>
	</div>
	<ul id="mb-menu">
		<li><a href=""><i class="fa fa-home"></i> Home</a></li>
		<li><a href=""><i class="fa fa-gear"></i> Services</a></li>
		<li><a href=""><i class="fa fa-users"></i> Team</a></li>
		<li><a href=""><i class="fa fa-info-circle"></i> About</a></li>
		<li><a href=""><i class="fa fa-phone"></i> Contact</a></li>
	</ul>
</div>
<!-- Mobile header end -->
<script type="text/javascript" src="header.js"></script>
</body>
</html>

CSS

*{margin: 0;padding:0;box-sizing: border-box;}
body{
	font-family: Arial;
	background-color:#eee;
}
.header{
	display: flex;
	justify-content: space-around;
	align-items: center;
	background-color: navy;
	padding: 20px;
}
.header h2{
	color:#fff;
	cursor: pointer;
	font-family: cursive;
}
#menu{
	display: flex;
}
#menu li{
	list-style: none;
	padding: 0 15px 0 15px;
}
#menu li a{
	text-decoration: none;
	color:#fff;
}
@media (max-width: 767px)
{
	.header{display: none;}
}
@media (min-width: 768px)
{
	.mb-header{display: none;}
}
.mb-header{
	background-color: navy;
	color:#fff;
	width: 100%;
}
.mb-header .top-bar h2{
	font-family: cursive;
}
.top-bar{
	display: flex;
	justify-content: space-between;
	padding: 20px;
	align-items: center;
}
#mb-menu{
	display: none;
	padding-left: 20px;
	padding-right: 20px;
	animation: menu 1s;
}
#mb-menu li{
	list-style: none;
	padding: 15px 0 15px 0;
	border-bottom: 1px solid grey;
}
#mb-menu li a{
	text-decoration: none;
	color:#fff;
	font-size: 1.2rem;
}
#show{
	font-size: 1.5rem;
	cursor: pointer;
}
#hide{
	font-size: 2rem;
	display: none;
	cursor: pointer;
}

@keyframes menu{
	0%{
		transform: translateX(100%);
	}
	100%{
		transform: translateX(0);
	}
}

JavaScript

function show_menu()
{
	var a=document.getElementById('mb-menu');
	a.style.display="block";
	var b=document.querySelector('.mb-header');
	b.style.height="100vh";b.style.position="fixed";
	var c=document.querySelector('#show');
	c.style.display="none";
	var c=document.querySelector('#hide');
	c.style.display="block";
}
function hide_menu()
{
	var a=document.getElementById('mb-menu');
	a.style.display="none";
	var b=document.querySelector('.mb-header');
	b.style.height="unset";b.style.position="static";
	var c=document.querySelector('#show');
	c.style.display="block";
	var c=document.querySelector('#hide');
	c.style.display="none";
}

Download Complete Project:

Download

Share with friends:
Scroll to Top