How to Create a Horizontal Navigation Bar Using CSS

Horizontal Navigation Bar css

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">
  <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">
      <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>

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;

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;

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.