Create a Hoverable Side Navigation with HTML, CSS and JavaScript - GeeksforGeeks

18 Aug, 2021
To create hoverable side navigation with icon on any website there is a need for two things HTML and CSS. If you want to attach the icons on the navigation bar then you need a font-awesome CDN link. These features make the website looks cool than a normal website where the nav-bar is old-school design. In this article, we will create the structure of the side with the side nav bar that will be Creating Structure section and the other section for designing the website i.e. Designing Structure. Below is the output of the complete code. Creating Structure: In this section, we are creating the basic website structure and also attach the CDN link of the Font-Awesome for the icons which will be used as a hover nav bar icon.  
CDN links for the Icons from the Font Awesome:  
<link rel=”stylesheet” href=”https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css”>
HTML code to make the structure:  
html
<!DOCTYPE html><html> <head>    <title>        Hoverable Side Navigation with Icon    </title></head> <body>     <!-- Geeksforgeeks and Slogan -->    <div class="banner">        <h1>GeeksforGeeks</h1>                   <p>            A Online Computer Science            Portal for Geeks        </p>      </div>     <!-- Body content topic -->    <div class="hoverable-topic">        <h3>Hoverable Side Navigation with Icon</h3>                   <p>            There are many kind of sidebar, hoverable            sidebars are on them and quite popular.            You can easily create hoverable sidebar            by using the HTML and CSS only. To add            extra features may you need to add some            jQuery. But that totally depends on your            requirements.        </p>      </div>     <!-- Side navigation Bar -->    <div class="sidehoverbar">        <a href="#" class="article">            Write an Article            <i class="fa fa-edit"></i>        </a>                 <a href="#" class="Interview">            Interview Experience            <i class="fa fa-file-o"></i>        </a>                 <a href="#" class="Scripter">            Technical Scripter            <i class="fa fa-commenting"></i>        </a>                 <a href="#" class="Suggested">            Suggested Topic            <i class="fa fa-plus"></i>        </a>                 <a href="#" class="Practice">            Coding Practice            <i class="fa fa-laptop"></i>        </a>    </div></body> </html>
Designing the Structure: In the previous section, we have created the structure of the basic website where we are going to use hoverable Side Navigation with the icon. In this section, we will design the structure and attach the icons for each navbar. 
CSS code to look good the structure:  
html
<style>            /* Head banner team */    .banner {        text-align: center;        width: ;    }              h1 {        color: green;    }            /* styling sidebar */    .sidehoverbar a {        background-color: grey;        position: absolute;        font-size: 22px;        text-decoration: none;        Color: white;        padding: 10px;        border-radius: 0px 25px 25px 0px;        left: -190px;        transition: 0.5s;        opacity: 0.5;    }            /* Hover effect on sidebar */    .sidehoverbar a:hover {        left: 0px;        opacity: 1;        background-color: #4CAF50;    }            /* float icons*/    .sidehoverbar i {        float: right;    }            /* defining position of each nav bar */    .article {        top: 50px;        width: 210px;        height: 30px;    }              .Interview {        top: 110px;        width: 210px;        height: 30px;    }              .Scripter {        top: 170px;        width: 210px;        height: 30px;    }              .Suggested {        top: 230px;        width: 210px;        height: 30px;    }              .Practice {        top: 290px;        width: 210px;        height: 30px;    }            /* content margin */    .hoverable-topic {        margin-left: 55px;    }</style>
Combine the code of HTML and CSS: This is the final code that is the combination of the above two sections.  
html
<!DOCTYPE html><html> <head>    <title>Hoverable Side Navigation with Icon</title>         <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">     <style>             /* Head banner team */        .banner {            text-align: center;            width: ;        }                 h1 {            color: green;        }             /* styling sidebar */        .sidehoverbar a {            background-color: grey;            position: absolute;            font-size: 22px;            text-decoration: none;            Color: white;            padding: 10px;            border-radius: 0px 25px 25px 0px;            left: -190px;            transition: 0.5s;            opacity: 0.5;        }             /* Hover effect on sidebar */        .sidehoverbar a:hover {            left: 0px;            opacity: 1;            background-color: #4CAF50;        }             /* float icons*/        .sidehoverbar i {            float: right;        }             /* defining position of each nav bar */        .article {            top: 50px;            width: 210px;            height: 30px;        }                 .Interview {            top: 110px;            width: 210px;            height: 30px;        }                 .Scripter {            top: 170px;            width: 210px;            height: 30px;        }                 .Suggested {            top: 230px;            width: 210px;            height: 30px;        }                 .Practice {            top: 290px;            width: 210px;            height: 30px;        }             /* content margin */        .hoverable-topic {            margin-left: 55px;        }    </style></head> <body>     <!-- Geeksforgeeks and Slogan -->    <div class="banner">        <h1>GeeksforGeeks</h1>                   <p>            A Online Computer Science            Portal for Geeks        </p>      </div>     <!-- Body content topic -->    <div class="hoverable-topic">        <h3>Hoverable Side Navigation with Icon</h3>                   <p>            There are many kind of sidebar, hoverable            sidebars are on them and quite popular.            You can easily create hoverable sidebar by            using the HTML and CSS only. To add extra            features may you need to add some jQuery.            But that totally depends on your            requirements.        </p>      </div>     <!-- Side navigation Bar -->    <div class="sidehoverbar">        <a href="#" class="article">            Write an Article            <i class="fa fa-edit"></i>        </a>                 <a href="#" class="Interview">            Interview Experience            <i class="fa fa-file-o"></i>        </a>                 <a href="#" class="Scripter">            Technical Scripter            <i class="fa fa-commenting"></i>        </a>                 <a href="#" class="Suggested">            Suggested Topic            <i class="fa fa-plus"></i>        </a>                 <a href="#" class="Practice">            Coding Practice            <i class="fa fa-laptop"></i>        </a>    </div></body> </html>
Output:  
 
Attention reader! Don’t stop learning now. Get hold of all the important HTML concepts with the Web Design for Beginners | HTML  course.
saurabh1990aror
adnanirshad158
CSS-Misc
HTML-Misc
JavaScript-Misc
CSS
HTML
Web Technologies
HTML
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to set space between the flexbox ?
Design a web page using HTML and CSS
Form validation using jQuery
How to style a checkbox using CSS?
Search Bar using HTML, CSS and JavaScript
How to set the default value for an HTML <select> element ?
Hide or show elements in HTML using display property
How to set input type date in dd-mm-yyyy format using HTML ?
REST API (Introduction)
How to Insert Form Data into Database using PHP ?