DEV Community

Arsalan Mlaik for Arsalan Malik

Posted on • Originally published at makemychance.com on

How to Create a Horizontal Navigation Bar Using CSS

A pie chart showing 40% responded
In web design, a horizontal navigation bar is a fundamental element allowing users to navigate different website sections. Creating a sleek and functional navigation bar using CSS (Cascading Style Sheets) is relatively straightforward and provides a lot of flexibility in terms of design and responsiveness.

Here’s a step-by-step guide to creating your own horizontal navigation bar:

Step 1: HTML Structure

First, let’s set up the HTML structure for our navigation bar. We'll use an unordered list (<ul>) to hold the list items (<li>) which will represent each navigation link.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Horizontal Navigation Bar</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <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>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

Step 2: CSS Styling

Next, let’s style our navigation bar using CSS. We will apply basic styles to the <nav>, <ul>, <li>, and <a> elements to create a horizontal layout.

/* styles.css */

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

nav {
  background-color: #333;
}

nav ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

nav ul li {
  float: left;
}

nav ul li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 20px;
  text-decoration: none;
}

nav ul li a:hover {
  background-color: #555;
}

Enter fullscreen mode Exit fullscreen mode

Step 3: Explanation of CSS Styles

body: Resets default margins and ensures no padding.

nav: Sets the background color of the navigation bar.

nav ul: Removes default list styles and ensures no padding or margins.

nav ul li: Floats each list item to the left to create a horizontal layout.

nav ul li a: Displays the anchor tags as block elements with white text centered vertically and horizontally within each list item. Adds padding for spacing and removes underlines.

nav ul li a:hover: Changes the background color of anchor tags on hover to indicate interactivity.

Step 4: Additional Styling and Responsiveness

To make the navigation bar responsive, consider using media queries to adjust styles for different screen sizes. For example:

@media (max-width: 768px) {
  nav ul {
    overflow: auto;
  }

  nav ul li {
    float: none;
    display: block;
    text-align: center;
  }

  nav ul li a {
    padding: 10px;
    display: inline-block;
  }
}

Enter fullscreen mode Exit fullscreen mode

This code snippet changes the navigation to a vertical layout on screens smaller than 768px wide, making it easier to navigate on mobile devices.

Step 5: Integration and Testing

Finally, integrate your CSS file (styles.css) into your HTML document and test your navigation bar across different devices and screen sizes to ensure it looks and functions as expected.

Creating a horizontal navigation bar using CSS enhances your website's usability and provides a professional and polished look. With these steps, you can customize your navigation bar to fit the design and style of your website while ensuring it remains accessible and responsive.

The post How to Create a Horizontal Navigation Bar Using CSS first appeared on Makemychance.

Top comments (0)