JSFiddle - React, Tailwind, and code Playground
HTML
<div class="wrapper_menu">
<ul class="menu">
<li>
<a>Раздел1</a>
<ul class="submenu">
<li>
<a>Пункт11</a>
</li>
<li>
<a>Пункт12</a>
</li>
<li>
<a>Пункт13</a>
</li>
</ul>
</li>
<li>
<a>Раздел2</a>
<ul class="submenu">
<li>
<a>Пункт21</a>
</li>
<li>
<a>Пункт22</a>
</li>
<li>
<a>Пункт23</a>
</li>
</ul>
</li>
</ul>
</div>
CSS
html,body{
padding:0px;
margin:0px;
height:100%;
font-size:14px;
}
.wrapper_menu{
position:relative;
background:#999;
text-align:center;
min-width:500px;
}
.wrapper_menu:before{
content:"";
display:block;
position:absolute;
left:0px;
right:0px;
bottom:0px;
height:2px;
background:#fff;
z-index:0;
}
ul.menu, ul.submenu{
margin:0px;
padding:0px;
list-style: none;
}
ul.menu>li>a, ul.submenu>li>a{
display:inline-block;
padding:10px;
position:relative;
cursor:pointer;
}
ul.menu{
display:inline-block;
white-space: nowrap;
margin:0px;
padding:0px;
vertical-align:top;
}
ul.menu>li{
float:left;
margin:0px 10px;
}
ul.menu>li>a:after{
content:"";
position:absolute;
bottom:0px;
left:50%;
margin-left:-8px;
border: 8px solid transparent;
border-bottom: 8px solid #fff;
opacity:0;
transition: opacity 0.0s ease 0s;
}
ul.menu>li:hover>a:after{
opacity:1;
transition: opacity 0.2s ease 0.5s;
}
ul.menu>li:hover>ul.submenu{
opacity:1;
max-height:1000px;
transition: opacity 1.0s ease 0.5s, max-height 1.0s ease 0.5s;
}
ul.submenu{
position:absolute;
top:36px;
left:0px;
right:0px;
background:#ddd;
text-align:center;
opacity:1;
max-height:0px;
transition: opacity 0.0s ease 0s;
overflow:hidden;
}
ul.submenu>li{
display:inline-block;
margin:0px 10px;
vertical-align:top;
}