<header>
<nav>
<ul class="meganav">
<li class="meganav--item">
<a href="#" class="meganav--link">Home</a>
</li>
<li class="meganav--item">
<a href="#" class="meganav--link" data-dropdown>Frontend <span>↓</span></a>
<div class="meganav--content">
<img src="https://www.trickyenough.com/wp-content/uploads/2022/06/IMG-20220603-WA0011-1280x720.jpg" alt="frontend technologies" />
<ul class="meganav--content__items">
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JAVASCRIPT</a></li>
<li><a href="#">REACT JS</a></li>
<li><a href="#">NEXT JS</a></li>
</ul>
</div>
</li>
<li class="meganav--item">
<a href="#" class="meganav--link" data-dropdown>Backend <span>↓</span></a>
<div class="meganav--content">
<img src="https://ddi-dev.com/uploads/backend-is.png" alt="backend technologies" />
<ul class="meganav--content__items">
<li><a href="#">NODE JS</a></li>
<li><a href="#">EXPRESS JS</a></li>
<li><a href="#">MONGO DB</a></li>
<li><a href="#">FIREBASE</a></li>
<li><a href="#">MY SQL</a></li>
</ul>
</div>
</li>
<li class="meganav--item">
<a href="#" class="meganav--link" data-dropdown>Full Stack <span>↓</span></a>
<div class="meganav--content">
<img src="https://media.geeksforgeeks.org/wp-content/cdn-uploads/20190626123927/untitlsssssed.png" />
<ul class="meganav--content__items">
<li><a href="#">MERN</a></li>
<li><a href="#">MEAN</a></li>
<li><a href="#">MEVN</a></li>
<li><a href="#">XAMP</a></li>
</ul>
</div>
</li>
<li class="meganav--item">
<a href="#" class="meganav--link">About</a>
</li>
<li class="meganav--item">
<a href="#" class="meganav--link">Contact</a>
</li>
</ul>
</nav>
</header>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
ul {
list-style: none;
}
a {
text-decoration: none;
}
header {
position: relative;
}
.meganav {
display: flex;
justify-content: center;
align-items: center;
gap: 1rem;
background-color: black;
&--link {
color: white;
}
&--item {
padding: 1rem 0;
display: flex;
justify-content: center;
flex-wrap: wrap;
}
&--content {
position: absolute;
top: 120%;
left: 50%;
transform: translateX(-50%);
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
width: 90%;
max-width:800px;
height: 200px;
border-radius: 10px;
box-shadow: 2px 2px 50px 2px #000000;
padding: 1rem 1.5rem;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease-in-out;
background-color: white;
& > img {
width: 200px;
height: 100px;
}
&__items {
width: 50%;
display: flex;
flex-wrap: wrap;
gap: 1.5rem;
& > li > a {
color: black;
}
}
}
&--item:hover &--content {
opacity: 1;
visibility: visible;
top: 100%;
}
[data-dropdown] > span {
display: none;
font-size:0.9rem;
vertical-align:top;
}
}
@media screen and (max-width: 600px) {
.meganav {
height: 100vh;
flex-direction: column;
justify-content: flex-start;
gap: 0.4rem;
&--content {
position: static;
display: none;
width: 100%;
height: 200px;
margin: 10px 0 0 0;
&__items {
width: 100%;
flex-direction: column;
align-items: center;
padding: 0.5rem;
gap: 1rem;
}
& > img {
display: none;
}
}
[data-dropdown] > span {
display: inline-block;
}
}
.show {
display: flex;
opacity: 1;
visibility: visible;
transform: translateX(0);
}
}
View Compiled
const meganav = document.querySelectorAll(".meganav--link");
if (window.innerWidth < 600) {
const closeAllDropdowns = () => {
const meganavContent = document.querySelectorAll(".meganav--content");
meganavContent.forEach((content) => {
content.classList.remove("show");
});
}
meganav.forEach((item) => {
item.addEventListener("click", (e) => {
const target = e.target;
if (target.nextElementSibling !== null) {
closeAllDropdowns()
target.nextElementSibling.classList.toggle("show");
}
});
});
window.onclick = function (e) {
if (!e.target.matches(".meganav--link")) {
closeAllDropdowns()
}
};
// const innerLinks = document.querySelectorAll(".meganav--content__items>li>a");
// innerLinks.forEach(link => {
// link.addEventListener("click",(e) => {
// console.log(e.target.innerText)
// })
// })
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.