Как сделать абсолютное позиционирование по вертикали относительно центра?

Делаю многоуровневое меню с помощью списков и css.
Чтоб не запутывать, упрощу код, оставлю только то, что касается проблемы.
li { position: relative }
ul { position: absolute; left: 100%; top: 0.2em; }
<li>Пункт 1
   <ul>
      <li>Подпункт 1
          <ul> .... </ul>
      </li>
      <li>Подпункт 2
          <ul> .... </ul>
      </li>
   </ul>
</ul>


Проблема в том, что списки меню у меня длинные и при раскрытии вложенных уровней подменю оказываются все ниже и ниже, и иногда не помещаются на экране.

ghZqtwu.png

Хочу сделать так, чтоб подменю позиционировались относительно своего центра:

dPQxBfR.png

Нельзя ли сделать так, чтоб при позиционировании ul отсчет происходил не от верхнего края, а от центра? Родительский li по высоте схлопнулся до высоты одной строки и top:-50% не помогает.

Как можно решить такую проблему?
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
werty1001
@werty1001
undefined
ul {
position: absolute;
left: 100%;
top: 50%;
transform: translate(0,-50%);
margin: 0;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы