Every website needs some sort of navigation so that users coming onto this web page can easily navigate between the pages of the website.

There are so many different navigation menus one can create like side navigation on a website, top navigation that stays on the top, maybe, one on the right side?

Well wherever you place it, these navigation menus or navbar menus are really an essential part of a website.

Creating them from scratch can not be so straightforward when you are just starting with HTML and CSS coding.

So in this blog post, we will create a top navigation menu or navbar from scratch using HTML and CSS and I will also attach the source code for it.

Creating The Folder Structure For Website

I have created a folder for myself called Nav1 and inside this folder with Visual Studio code which will be my editor in which I will write my HTML and CSS code.

Once the folder is open in visual studio code, I will create two files, an index.html and a style.css file.

Creating The HTML Structure

We will start by creating the basic HTML structure for our website.

We are using the Emmet extension for visual studio code so we will start writing html and Emmet will give us the boilerplate HTML structure for the website.

Then we will link our style.css to the HTML page.

Then we will go ahead and add some elements to our body of the website.

From the above image we can see that we have added a header element inside our body.

Inside the header tag, we have created two elements, 1 is an anchor element which will be used as a placeholder for the logo for our website.

The other element inside the header is the nav element. Nav elements are usually kept for adding menu to the navigations.

Inside the nav we have an unordered list and a few elements inside it defining the pages that we want the user to navigate to using anchor elements.

This is how our HTML looks like in a browser till now.

The next step is to add some CSS styles to these elements that we have created so that our website looks the way we want it to look.

The first thing we will do, and this is totally optional is to add a font to your website. In this example, I am using Google Quicksand Font. The usage of the font is explained in the image above.

By adding the above css code, we give our header a display property of flex and make the alignment for the header. After these above css changes the header looks like this.


Then we add some more styles to the nav and the header as below


This gives the color and styles to the nav and header.

The Final Look


HTML Source Code

CSS Source Code