JSFiddle - React, Tailwind, and code Playground
HTML
<div class="dropdown">
<div>File</div>
<ul>
<li>New...</li>
<li>Open</li>
<li>Open As...</li>
<li>Save</li>
</ul>
</div>
<div class="dropdown">
<div>Menu</div>
<ul>
<li>menu #1</li>
<li>menu #2</li>
<li>menu #3</li>
</ul>
</div>
<div class="dropdown">
<div>Any</div>
<ul class="right-open">
<li>menu #1</li>
<li>menu #2</li>
<li>menu #3</li>
</ul>
</div>
CSS
body { background: #bbb; font-family: "Calibri";}
.dropdown {
display: inline-block;
position: relative;
}
.dropdown ul {
position: absolute;
/* top: 25px; */
padding: 0px;
margin: 0px;
list-style: none;
visibility: hidden;
opacity: 0;
background: #fff;
width: 100px;
padding: 5px 0px;
border-top-right-radius: 5px;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
box-shadow: 0px 1px 1px 0px #000;
transition: all 0.3s 0s;
z-index: 9;
}
ul.right-open {
right: 0px !important;
border-top-left-radius: 5px !important;
border-top-right-radius: 0px !important;
}
.dropdown li {
padding: 0px 5px;
cursor: pointer;
}
.dropdown li:hover {
background: #1560bd;
color: #fff;
}
.dropdown div {
display: inline-block;
font-size: 14px;
height: 20px;
line-height: 20px;
border-radius: 5px;
background: #eee;
padding: 5px;
box-shadow: 0px 0px 1px 0px #000;
cursor: default;
transition: background 0.3s 0s;
}
.dropdown:hover > div {
background: #fff;
}
.dropdown:hover > ul {
visibility: visible;
opacity: 1;
}
JavaScript
/* нe единой строчки JS */