Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Выдающее вертикальное меню по центру относительно родителя

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как сделать?
Klinch
Отправлено: 17 Октября, 2016 - 15:06:11
Post Id


Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Доброго всем времени суток!

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


Нажмите для увеличения


Как видите, верхний край подменю совпадает с верхним краем пункта меню и подменю выпадает вниз, относительно родителя.

Мне нужно сделать, чтобы подменю стояло по центру относительно родителя, т.е. так, как показано на данном примере:


Нажмите для увеличения



Сами пункты меню могут иметь разную высоту, но не меньше 70px

Подскажите, пожалуйста, как это можно сделать? Код действующих элементов меню следующий:

HTML
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div class="leftmenu">
  3.     <div class="menu">
  4.          <ul>
  5.                <li>
  6.                      Пункт меню
  7.  
  8.                      <ul>
  9.                           <li>Пункт подменю</li>
  10.                           <li>Пункт подменю 2</li>
  11.                      </ul>
  12.                </li>
  13.          </ul>
  14.     </div>
  15. </div>
  16.  


CSS
CODE (html):
скопировать код в буфер обмена
  1.  
  2. /* ПУНКТЫ МЕНЮ:  */
  3. .leftmenu .menu ul a li {
  4.     position: relative;
  5.         display: table;
  6.         width: 320px;
  7.         font-size: 16px;
  8.         color: #fff;
  9.         clear: both;
  10.         padding-right: 20px;
  11.         min-height: 70px;
  12. }
  13.  
  14.  
  15.  
  16. /* ВЫПАДАЮЩЕЕ ПОДМЕНЮ:  */
  17. .leftmenu .menu ul a li > ul {display: none;}
  18.  
  19. .leftmenu .menu ul a li:hover > ul {
  20.     display: block;
  21.     background: #fff;
  22.     z-index: 9999;
  23.     width: 750px;
  24.     color: #000;
  25.     position: absolute;
  26.     top: 0px;
  27.     left: 340px;
  28.     padding: 30px 40px;
  29. }
  30.  



Я пробовал указывать top: -100%, но высота считается относительно родителя (пункта меню) и подменю просто сдвигается вверх на высоту, равную высоте родителя, но не встает посередине.

(Отредактировано автором: 17 Октября, 2016 - 15:14:49)

 
 Top
IllusionMH
Отправлено: 18 Октября, 2016 - 17:53:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Klinch, или JS или top: 50% transform: translate(-50%);
 
 Top
Klinch
Отправлено: 18 Октября, 2016 - 18:29:47
Post Id


Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




IllusionMH
Огромное спасибо!

Помогло вот это:
top: 50%;
transform: translateY(-50%);
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTML, Дизайн & CSS »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB