Create a Responsive Menu in HTML/PHP?

Posted by

Introduction

In this tutorial, we will learn how to create a responsive menu in HTML/PHP. A responsive menu is an essential part of any website as it allows users to navigate through different pages or sections easily. We will also provide a live example to demonstrate the implementation of a responsive menu.

Step 1: HTML Markup

<html>
    <head>
        <title>Responsive Menu</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" type="text/css" href="css/style.css">
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <link rel="stylesheet" href="style.css">
    </head>
    <body>
        <div class="mobile-menu" id="mobile-menu">
            Menu
            <img src="http://www.shoredreams.net/wp-content/uploads/2014/02/show-menu-icon.png">
        </div>
        <nav>
            <ul>
                <li>
                    <a href="#">Home</a>
                </li>
                <li>
                    <a href="#">About</a>
                </li>
                <li>
                    <a href="#">Services</a>
                </li>
                <li>
                    <a href="#">Portfolio</a>
                </li>
                <li>
                    <a href="#">Contact</a>
                </li>
            </ul>
        </nav>
        <script type="text/javascript">
	$(function() {
        var pull = $('#mobile-menu');
        menu = $('nav ul');
        menuHeight = menu.height();
        $(pull).on('click', function(e) {
            e.preventDefault();
            menu.slideToggle();
        });
        $(window).resize(function() {
            var w = $(window).width();
            if (w > 320 && menu.is(':hidden')) {
                menu.removeAttr('style');
            }
        });
    });
        </script>
    </body>
</html>

Step 2:- Create CSS Page

nav ul{

	padding: 2px;

	margin: 0px;

	position: absolute;

	background-color: #fff;

	border: 1px solid #078EE5;

}

nav ul li{

	margin: 5px;

	float: left;

	list-style: none;

	line-height: 30px;

	position: relative;

	border: 1px solid #078EE5;

	background-color: #078EE5;

}

nav ul li:hover{

	margin: 5px;

	color: #078EE5;

	background-color: #fff;

	border: 1px solid #078EE5;

}

nav ul li:hover > a{

	color: #078EE5;

}

nav ul li a{

	color: #fff;

	padding: 10px;

	text-decoration: none;

}

.mobile-menu{

	background-color: red;

	position: relative;

	display: none;

}

@media (max-width: 640px) {

	.mobile-menu{

		display: block;

		background-color: #078EE5;

		color: #fff;

		padding: 5px 10px;

		cursor: pointer;

	}

	.mobile-menu img{

		width: 25px;

		top: 2px;

		right: 10px;

		position: absolute;

	}

	nav{

	    position: relative;

	    height: auto;

	}

	nav ul{

		display: none;

	    list-style: none;

	    padding: 0;

	    margin: 0;

	    width: 99%; 

	    top: 0;

	    position: absolute;

	}

	nav ul li{ 

		width: 92%;

		position: relative;

	    padding: 5px;

	    background-color: #078EE5;

	    cursor: pointer;

	}

}

Output:- In mobile view

Hopefully, It will help you…!!!

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x