JSFiddle - React, Tailwind, and code Playground
by Alice
HTML
<nav>
<ul class="topmenu">
<li><a href="" class="active">Меню<span class="fa fa-angle-down"></span></a>
<ul class="submenu">
<li><a href="">Физико-географическое положение</a></li>
<li><a href="">История исследования и освоение материка</a><span class="fa fa-angle-down"></span>
<ul class="submenu">
<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="">Геологическое строение</a></li>
<li><a href="">Климат</a></li>
<li><a href="">Внутренние воды</a></li>
<li><a href="">Природные ландшафты и своеобразие органического мира</a><span class="fa fa-angle-down"></span>
<ul class="submenu">
<li><a href="">Ландшафты</a></li>
<li><a href="">Растительный мир</a></li>
<li><a href="">Животный мир</a></li>
</ul>
</li>
<li><a href="">Население и хозяйство</a><span class="fa fa-angle-down"></span>
<ul class="submenu">
<li><a href="">Государственное устройство</a></li>
<li><a href="">Население</a></li>
<li><a href="">Хозяйство</a></li>
</ul>
</li>
<li><a href="">Словарь</a></li>
<li><a href="">Карта сайта</a></li>
</ul>
</li>
</ul>
...
CSS
*{box-sizing: border-box;}
nav {background: #9e5fd8;}
nav ul {
margin: 0;
padding: 0;
list-style: none;
}
nav ul:after {
content: "";
display: table;
clear: both;
}
nav a {
text-decoration: none;
display: block;
transition: .3s linear;
color: #fffafa;
}
.topmenu > li {
float: left;
position: relative;
border-left: 1px solid #fffafa;
}
.topmenu > li:first-child {border-left: 0;}
.topmenu > li > a {
padding: 16px 25px;
font-size: 16px;
color: #FfFaFa;
}
.topmenu > li > a:hover {background:#BA55D3;}
.submenu a:hover {background:#BA55D3;}
.topmenu .fa,
.submenu .fa {
margin-left: 5px;
color: inherit;
}
.submenu {
position: absolute;
width: 450px;
background: #9e5fd8;
border-top: 1px solid #CBCBCC;
border-left: 1px solid #CBCBCC;
border-right: 1px solid #CBCBCC;
visibility: hidden;
opacity: 0;
transform-origin: 0% 0%;
transform: rotateX(-90deg);
transition: .3s linear;
}
.submenu li {position: relative;}
.submenu li a {
color: #fffafa;
padding: 10px 20px;
font-size: 14px;
border-bottom: 1px solid #CBCBCC;
}
.submenu .submenu {
position: absolute;
left: 100%;
top: -1px;
transition: .3s linear;
}
nav li:hover > .submenu {
transform: rotateX(0deg);
visibility: visible;
opacity: 1;
}