JSFiddle - React, Tailwind, and code Playground
by learningforever
HTML
<div class="navbar">
<a href="#home">Home</a>
<a href="#news">News</a>
<div class="dropdown">
<button class="dropbtn">Dropdown <i class="fa fa-caret-down"></i></button>
<div class="dropdown-content" id="megaMenu">
<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>
</div>
</div>
</div>
CSS
/* Links inside the navbar */
.navbar a, .dropbtn {
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
color: white;
padding: 14px 16px;
text-decoration: none;
background-color: inherit;
border: none;
cursor: pointer;
}
/* The dropdown container */
.dropdown {
position: relative;
flex-grow: 1; /* Allows the dropdown to fill the available space */
}
/* Dropdown content (hidden by default) */
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
width: 100%; /* Match the dropdown width to the navbar */
left: 0;
top: 100%;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-content {
display: flex; /* Use flex to align columns */
}
/* Mega Menu styling with flexbox */
.row {
display: flex;
width: 100%; /* Ensure the row takes full width of the dropdown */
}
.column {
flex: 1; /* Each column takes up 1/3 of the space */
padding: 10px;
background-color: #ccc; /* Background color for visual separation */
}
/* Style links inside the columns */
.column a {
color: black;
padding: 16px;
text-decoration: none;
display: block;
}
/* Add a background color on hover */
.column a:hover {
background-color: #ddd;
}
JavaScript
<div class="navbar">
<a href="#home">Home</a>
<a href="#news">News</a>
<div class="dropdown">
<button class="dropbtn">Dropdown <i class="fa fa-caret-down"></i></button>
<div class="dropdown-content" id="megaMenu">
<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>
</div>
</div>
</div>