В меню, при нанесении курсора на Категории открывается подменю, а при удалении курсора подменю закрывается. Как сделать чтобы курсор мог спуститься

введите сюда описание изображениявведите сюда описание изображения

let linking = document.querySelector('.main-link');
let menu = document.querySelector('.submenu');


linking.onmouseover = function() {
  mouseOver()
};

function mouseOver() {
  menu.style.visibility = 'visible';
  menu.style.opacity = 1;
  menu.style.zIndex = 1;
}

function mouseOut() {
  menu.style.visibility = 'hidden';
  menu.style.opacity = 0;
  menu.style.zIndex = 0;
}
.nav-link {
  text-transform: uppercase;
  position: relative;
}

.nav-link:hover {
  cursor: pointer;
  color: var(--color-green) !important;
  transition: all .5s ease;
}

.nav-link::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  border-radius: 2px;
  background-color: var(--color-green);
  bottom: 0;
  left: 0;
  transform-origin: right;
  transform: scaleX(0);
  transition: transform .3s ease-in-out;
}

.nav-link:hover::before {
  transform-origin: left;
  transform: scaleX(1);
}

.submenu {
  position: absolute;
  top: 135px;
  left: -33px;
  opacity: 0;
  z-index: -1;
  width: calc(100% + 33px);
  background: var(--color-white);
  display: flex;
  padding-left: 233px;
  padding-right: 20px;
  padding-top: 35px;
  padding-bottom: 70px;
  box-shadow: 0 -5px 8px 1px rgb(0 0 0 / 6%);
  visibility: visible;
  transition: all .3s ease-in-out;
}

.main-link:hover.submenu {
  visibility: visible;
  opacity: 1;
}

@media screen and (min-width: 1400px) {
  .submenu {
    padding-left: 370px !important;
    padding-right: 124px !important;
  }
}

@media screen and (min-width: 1200px) and (max-width:1400px) {
  .submenu {
    padding-left: 330px !important;
    padding-right: 124px !important;
  }
}

@media screen and (max-width:992px) {
  .submenu {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-left: 50px !important;
  }
}

.submenu h3 {
  font-family: montserratboldarm, sans-serif;
  font-size: 15px;
  color: var(--color-black);
  text-transform: uppercase;
  margin-bottom: 20px;
  font-weight: 600;
}

.category-list {
  min-width: 250px;
}

.category-list-item {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
  margin: 12px 0;
}

.category-link {
  color: var(--color-text);
  text-decoration: none;
}

.category-link:hover {
  color: var(--color-green);
  cursor: pointer;
  transition: all .5s ease-in-out;
}

.category-prod-list {
  display: flex;
}

.category-prod-list {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.category-prod-list-item {
  position: relative;
  width: 50% !important;
  height: 200px;
  margin: 15px;
  overflow: hidden;
}
<div class="menu">
  <nav class="navbar navbar-expand-lg">
    <a class="navbar-brand" href="home-russian.html" target="_blank">
      <img src="images/header-logo.png" alt="Logo" class="img-fluid navbar-brand-img">
    </a>
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                        <span class="navbar-toggler-icon"></span>
                      </button>
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav">
        <li class="nav-item">
          <a class="nav-link main-link " href="category-russian.html" target="_blank">КАТЕГОРИИ</a>
        </li>

        <li class="nav-item">
          <a class="nav-link" href="projects-russian.html" target="_blank">РАБОТЫ</a>
        </li>

        <li class="nav-item">
          <a class="nav-link" href="category-products-russian.html" target="_blank">ПРОДУКТЫ</a>
        </li>

        <li class="nav-item">
          <a class="nav-link" href="about-russian.html" target="_blank">О НАС</a>
        </li>

        <li class="nav-item">
          <a class="nav-link" href="blog-russian.html" target="_blank">БЛОГ</a>
        </li>

        <li class="nav-item">
          <a class="nav-link" href="contact-russian.html" target="_blank">КОНТАКТЫ</a>
        </li>

      </ul>
    </div>
  </nav>
</div>


<!--submenu-->

<div class="submenu">
  <div class="ps-2">
    <h3>КАТЕГОРИИ</h3>
    <ul class="category-list list-unstyled m-0">
      <li class="category-list-item">
        <a href="category-details-russian.html" target="_blank" class="category-link">Кухонная мебель</a>
      </li>

      <li class="category-list-item">
        <a href="#" class="category-link"> Мебель для гостиной </a>
      </li>

      <li class="category-list-item">
        <a href="#" class="category-link">Мебель для спальни </a>
      </li>

      <li class="category-list-item">
        <a href="#" class="category-link">Детская мебель </a>
      </li>

      <li class="category-list-item">
        <a href="#" class="category-link">Офисная мебель</a>
      </li>

      <li class="category-list-item">
        <a href="#" class="category-link">Мебель для прихожей</a>
      </li>

    </ul>
  </div>


  <div class="category-prod-list">
    <div class="category-prod-list-item">
      <img src="images/3menu-img1.png" alt="" class="img-fluid">
      <a href="#" class="btn-black">Купите сейчас</a>
    </div>

    <div class="category-prod-list-item">
      <img src="images/3menu-img2.png" alt="" class="img-fluid">
      <a href="#" class="btn-black">Купите сейчас </a>
    </div>
  </div>
</div>

`***ttps://i.stack.imgur.com/g82TX.jpg


Ответы (1 шт):

Автор решения: puffleeck

для этого достаточно буквально одной строки CSS

.x:not(:hover)> :not(.y) {display: none;} /*!!!!!!!!!!*/

.x {
  border: 1px solid black;
  border-radius: .5em;
  padding: .5em;
  margin: .5em;
  background: rgba(0, 0, 0, 0.2);
  float: left;
}
<div class='x'>
  <div class='y'>header a1</div>
  <p>option</p>
  <p>option</p>
  <p>option</p>
  <p>option</p>
</div>

<div class='x'>
  <div class='y'>header b1</div>
  <div class='x'>
    <div class='y'>header b2 - 1</div>
    <p>option</p>
    <p>option</p>
    <p>option</p>
    <p>option</p>
  </div>
  <div class='x'>
    <div class='y'>header b2 - 2 float'ы такие... float'ные...</div>
    <div class='x'>
      <div class='y'>header b3 - 1</div>
      <p>option</p>
      <p>option</p>
      <p>option</p>
      <p>option</p>
    </div>
    <p>option</p>
    <div class='x'>
      <div class='y'>header b3 - 2</div>
      <p>option</p>
      <p>option</p>
      <p>option</p>
      <p>option</p>
    </div>
    <div class='x'>
      <div class='y'>header b3 - 3</div>
      <p>option</p>
      <p>option</p>
      <p>option</p>
      <p>option</p>
    </div>
  </div>
  <div class='x'>
    <div class='y'>header b2 - 3</div>
    <p>option</p>
    <p>option</p>
    <p>option</p>
    <p>option</p>
  </div>
</div>

→ Ссылка