'dropdown menu with top triangle
I want to create a dropdown menu like this:
but I cant horizontally center the top triangle and the dropdown menu (based on the li a) and I'm having some :hover problem, because the dropdown ul fades away.
how can I do that?
JSFiddle:
html {
text-align: center;
}
nav {
width: 100%;
height: auto;
background-color: #000;
}
ul li {
display: inline-block;
position: relative;
margin: 1em
}
ul ul {
display: none;
position: absolute;
background-color: #000;
top: 50px;
}
ul ul:after {
position: absolute;
left: 50%;
top: -8px;
width: 0;
height: 0;
content: '';
border-left: 20px solid transparent;
border-right: 20px solid transparent;
border-bottom: 20px solid #000000;
}
a {
color: #fff;
text-decoration: none;
}
li:hover ul {
display:block;
}
<nav>
<ul>
<li>
<a href="#">Dropdown1</a>
<ul>
<li><a href="#">Option1</a></li>
<li><a href="#">Option2</a></li>
<li><a href="#">Option3</a></li>
</ul>
</li>
<li>
<a href="#">Dropdown2</a>
<ul>
<li><a href="#">Option1</a></li>
<li><a href="#">Option2</a></li>
<li><a href="#">Option3</a></li>
</ul>
</li>
<li>
<a href="#">Dropdown3</a>
<ul>
<li><a href="#">Option1</a></li>
<li><a href="#">Option2</a></li>
<li><a href="#">Option3</a></li>
</ul>
</li>
</ul>
</nav>
Solution 1:[1]
To center the triangle horizontally, simply use transform as below:
left: 50%; //as you did
transform: translateX(-50%);
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Asef Hossini |
