JSFiddle - React, Tailwind, and code Playground
HTML
<ul id="nav">
<li>
<a href="#" title="">Главная</a>
</li>
<li class="dropdown">
<a href="#" title="">Новости</a>
<ul>
<li><a href="#">Все</a></li>
<li><a href="#">Просшествия</a></li>
<li><a href="#">Экономика</a></li>
<li><a href="#">Общество</a></li>
</ul>
</li>
<li>
<a href="#" title="">Погода</a>
</li>
<li>
<a href="#" title="">Программа</a>
</li>
<li>
<a href="#" title="">Афиша</a>
</li>
</ul>
CSS
#nav {
list-style: none;
position: relative;
}
#nav:after { /* держалка высоты UL */
content: '';
display: table;
clear: both;
}
#nav li {
float: left;
border: 1px solid transparent;
}
#nav > li:hover {
border: 1px solid #d0d0d0;
}
#nav > li > a {
display: block;
text-decoration: none;
color: #0076d1;
padding: 10px;
}
#nav > li:hover > a{
color: #000;
}
#nav li ul {
list-style: none;
position: absolute;
top: 100%; /* лучше не зависеть от размера шрифта */
border: 1px solid #fff;
padding: 0;
margin-left: -1px;
margin-top: -1px;
display: none;
opacity: 0;
}
#nav li ul li a {
display: block;
text-decoration: none;
color: #868686;
padding: 10px;
}
#nav li ul li a:hover {
text-decoration: underline;
}
#nav li:hover ul {
border: 1px solid #d0d0d0;
display: block;
opacity: 1;
}
#nav .dropdown:hover {
border-bottom: 1px solid transparent;
}
#nav .dropdown:hover:after { /* накрывалка лишней границы */
content: '';
display: block;
border-top: 1px solid #fff;
position: relative;
margin-bottom: -1px;
}