Объединить переполнение-у: прокрутка с переполнением-х: видимый - PullRequest
0 голосов
/ 05 марта 2020

У меня есть div, у которого выпадающие элементы div расположены абсолютно вправо. Все работает правильно, но мне нужно добавить максимальную высоту в мой основной div. Поскольку он будет переполнен, я добавлю переполнение-y прокрутки, но это все испортит. Он не позволяет моим выпадающим элементам выходить за пределы основного и размещает их внутри с помощью горизонтальной полосы прокрутки.

Я смоделировал пример:

.menu {
  height: 200px;
  max-height: 200px;
  width: 200px;
  background-color: red;
  margin-bottom: 50px;
}

.menu.overflow {
  overflow-y: scroll;
  background-color: purple;
  height: 150px;
  max-height: 150px;
}

.menu-item {
  height: 30px;
  width: 100%;
  background-color: blue;
  position: relative;
  margin-bottom: 10px;
  cursor: pointer;
}

.menu-item-flyout {
  display: none;
  width: 200px;
  height: 100px;
  position: absolute;
  left: 100%;
  background-color: green;
  top: 0;
}

.menu-item:hover .menu-item-flyout {
  display: block;
}
<!-- no overflow y scroll -->

working correctly:
<div class="menu">
  <div class="menu-item">
    <div class="menu-item-flyout"></div>
  </div>
  
  <div class="menu-item">
    <div class="menu-item-flyout"></div>
  </div>
  
  <div class="menu-item">
    <div class="menu-item-flyout"></div>
  </div>
</div>

<!-- overflow y scroll -->

This is not working. I want to add overflow y
scroll to menu but it prevents the flyout

<div class="menu overflow">
  <div class="menu-item">
    <div class="menu-item-flyout"></div>
  </div>
  
  <div class="menu-item">
    <div class="menu-item-flyout"></div>
  </div>
  
  <div class="menu-item">
    <div class="menu-item-flyout"></div>
  </div>
</div>

1 Ответ

0 голосов
/ 05 марта 2020

К сожалению, вы не можете смешивать значения переполнения. За MDN в overflow-x:

Если overflow-y равно hidden, scroll или auto и это свойство равно visible (по умолчанию), оно будет неявное вычисление до auto.

auto, в этом случае используется полоса прокрутки. Обойти это невозможно: нельзя переполнить окно только в одном направлении.

Как правило, меню, основанные на наведении, трудно ориентировать, как есть, но они коварны с точки зрения доступности , Добавление полос прокрутки в микс - это рецепт катастрофы. Я бы порекомендовал подойти к проблеме под другим углом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...