JSFiddle - React, Tailwind, and code Playground

by Axiniya

HTML

<nav>
  <div class="main-menu">
    <ul class="menu-main-menu">
      <li class="menu-parent-item">
        <a href="#">Пункт меню 1 ▶</a>
        <div class="menu-lvl-2">
          <ul class="lvl-2">
            <li class="menu-child-item">
              <a href="#">Подпункт меню 1 ▶</a>
              <div class="menu-lvl-3">
                <ul class="lvl-3">
                  <li><a href="#">Подподпункт меню 1</a></li>
                  <li><a href="#">Подподпункт меню 2</a></li>
                  <li><a href="#">Подподпункт меню 3</a></li>
                </ul>
              </div>
            </li>
            <li><a href="#">Подпункт 2</a></li>
            <li><a href="#">Подпункт 3</a></li>
          </ul>
        </div>
      </li>
      <li><a href="#">Пункт меню 2</a></li>
      <li><a href="#">Пункт меню 3</a></li>
    </ul>
  </div>
</nav>

CSS

body {
  margin: 0;
  padding: 0;
}

.main-menu li, a {
  text-decoration: none;
  list-style: none;
  color: black;
}

.main-menu .menu-main-menu {
    position: fixed;
    width: 200px;
    top: 0;
    height: 100%;
    background: gray;
    margin: 0;
    padding: 0;
}

.menu-lvl-2 .lvl-2 {
	display: none;
}

.lvl-2 .menu-child-item::before {
	content: '';
	display: none;
	width: 200px;
	height: 100%;
	position: fixed;
	left: 200px;
  top: 0;
  list-style: none;
  background: darkgray;
  padding: 0;
}

.lvl-2 .menu-child-item:hover::before {
	display: block;
}

.menu-lvl-3 .lvl-3 {
    display: none;
    position: fixed;
    width: 200px;
    left: 400px;
    top: 0;
    list-style: none;
    height: 100%;
    background: lightgray;
    padding: 0;
}

.menu-parent-item:hover > .menu-lvl-2 .lvl-2 {
    display: block;
}

.lvl-2 .menu-child-item:hover > .menu-lvl-3 .lvl-3 {
    display: block;
}