DEV Community

Cover image for How to Add Menu in any Website
Kamal Deep Pareek
Kamal Deep Pareek

Posted on

How to Add Menu in any Website

A website menu is a crucial navigation component that helps users find information quickly and efficiently. A well-structured menu enhances user experience, improves accessibility, and can even boost SEO rankings. This guide will walk you through adding a menu to any website using HTML, CSS, and JavaScript.

1. Understanding Website Menus

A website menu is a collection of links, typically displayed at the top or side of a webpage. There are different types of menus, such as:

  • Horizontal menus (commonly used in headers)
  • Vertical menus (often found in sidebars)
  • Dropdown menus (expandable lists for subcategories)
  • Hamburger menus (used for mobile navigation)

2. Creating a Basic Menu with HTML

HTML is the foundation of a website's structure. Let's create a simple navigation bar:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Website Menu</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <nav>
        <ul class="menu">
            <li><a href="#home">Home</a></li>
            <li><a href="#about">About</a></li>
            <li><a href="#services">Services</a></li>
            <li><a href="#contact">Contact</a></li>
        </ul>
    </nav>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

3. Styling the Menu with CSS

To make the menu visually appealing, we use CSS to style it:

body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
}

nav {
    background-color: #333;
    padding: 10px 0;
}

.menu {
    list-style-type: none;
    padding: 0;
    margin: 0;
    text-align: center;
}

.menu li {
    display: inline;
    margin: 0 15px;
}

.menu a {
    text-decoration: none;
    color: white;
    font-size: 18px;
    padding: 10px;
}

.menu a:hover {
    background-color: #555;
    border-radius: 5px;
}
Enter fullscreen mode Exit fullscreen mode

4. Adding a Dropdown Menu with HTML & CSS

To enhance the menu, we can add a dropdown feature:

<li class="dropdown">
    <a href="#">Services</a>
    <ul class="dropdown-menu">
        <li><a href="#web">Web Development</a></li>
        <li><a href="#mobile">Mobile App Development</a></li>
        <li><a href="#seo">SEO Optimization</a></li>
    </ul>
</li>
Enter fullscreen mode Exit fullscreen mode
.dropdown-menu {
    display: none;
    position: absolute;
    background-color: #333;
    list-style-type: none;
    padding: 0;
}

.dropdown:hover .dropdown-menu {
    display: block;
}
Enter fullscreen mode Exit fullscreen mode

5. Making the Menu Responsive with JavaScript

For better mobile accessibility, we can use JavaScript to add a hamburger menu:

<button id="menu-toggle"></button>
Enter fullscreen mode Exit fullscreen mode
#menu-toggle {
    display: none;
    font-size: 24px;
    background: none;
    border: none;
    color: white;
    cursor: pointer;
}

@media (max-width: 768px) {
    .menu {
        display: none;
        flex-direction: column;
    }
    #menu-toggle {
        display: block;
    }
}
Enter fullscreen mode Exit fullscreen mode
document.getElementById('menu-toggle').addEventListener('click', function() {
    var menu = document.querySelector('.menu');
    if (menu.style.display === 'block') {
        menu.style.display = 'none';
    } else {
        menu.style.display = 'block';
    }
});
Enter fullscreen mode Exit fullscreen mode

Conclusion

Adding a menu to your website is essential for better navigation and user engagement. By combining HTML, CSS, and JavaScript, you can create a stylish and functional menu that enhances the user experience. Implementing responsive design ensures your menu works seamlessly across all devices.

Top comments (0)