How to create mega menu using HTML and CSS?
Mohammad Azad
Verified
Learn how to create a mega menu (full-width dropdown menu in a navigation bar) using HTML and CSS.
@import url(https://fonts.googleapis.com/css?family=Open+Sans);
* {
box-sizing: border-box;
}
body {
margin: 0;
font-family: "Open Sans";
border: 1px solid #f2f2f2;
}
.navbar {
overflow: hidden;
background-color: #fff;
box-shadow: 0px 0px 12px rgb(0 0 0 / 15%);
display: flex;
}
.navbar a {
font-size: 16px;
color: #000;
text-align: center;
padding: 20px 20px;
text-decoration: none;
position: relative;
}
.navbar a::after {
content: "";
position: absolute;
width: 1px;
}
.dropdown {
float: left;
overflow: hidden;
}
.dropdown .dropbtn {
font-size: 16px;
border: none;
outline: none;
color: #000;
padding: 20px 20px;
background-color: inherit;
font: inherit;
margin: 0;
cursor: pointer;
}
.navbar a:hover, .dropdown:hover .dropbtn {
background-color: #f2f2f2;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #fff;
width: 100%;
left: 0;
box-shadow: 0px 8px 16px 0px rgb(0 0 0 / 5%);
z-index: 1;
}
.dropdown-content .header {
padding: 20px 25px;
color: #e54d26;
background: #f2f2f2;
}
.dropdown-content .header h2{
margin: 0px;
font-size: 16px;
font-weight: 500;
}
.dropdown:hover .dropdown-content {
display: block;
}
/* Create three equal columns that floats next to each other */
.row{
display: flex;
align-items: center;
}
.column {
flex: 1;
padding: 25px 12px;
}
.column:last-child {
flex: 2;
}
.column img{
width:100%;
border-radius: 0px 10px 10px 0px;
}
.column h3 {
margin: 0px 0px 15px;
}
.column a {
float: none;
color: black;
padding: 10px 16px;
text-decoration: none;
display: block;
text-align: left;
border: 1px solid #f2f2f2;
border-radius: 4px;
margin-top: 10px;
}
.column a:hover {
background-color: #f2f2f2;
}
.row:after {
content: "";
display: table;
clear: both;
}
/* Responsive layout - makes the three columns stack on top of each other instead of next to each other */
@media screen and (max-width: 600px) {
.row{
display: block;
}
.column {
width: 100%;
height: auto;
}
}
@media screen and (max-width: 1199px) {
.column:last-child {
/*display: none;*/
}
}
<div class="navbar">
<a href="#home">Home</a>
<div class="dropdown">
<button class="dropbtn">Dropdown
<i class="fa fa-caret-down"></i>
</button>
<div class="dropdown-content">
<div class="header">
<h2>Mega Menu</h2>
</div>
<div class="row">
<div class="column">
<h3>Category 1</h3>
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
<div class="column">
<h3>Category 2</h3>
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
<div class="column">
<h3>Category 3</h3>
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
<div class="column">
<img src="https://w3sniff.com/common/CoverIMG/html.jpg" alt="w3sniff">
</div>
</div>
</div>
</div>
<a href="#news">About</a>
</div>
<div style="padding:16px">
<h3>Responsive Mega Menu (Full-width dropdown in navbar)</h3>
<p>Hover over the "Dropdown" link to see the mega menu.</p>
<p>Resize the browser window to see the responsive effect.</p>
</div>
Learn how to create a mega menu (full-width dropdown menu in a navigation bar) using HTML and CSS.
Comments
Leave a Comment