2015-08-12 8 views
-2

Начиная с этой ситуации:абсолютного позиционирования уль внутри другого ул

<div id="wrapper"> 
    <ul class="menu"> 
     <li>item 1</li> 
     <ul> 
      <li>item 1.1</li> 
      <li>item 1.2</li> 
     </ul> 
     <li>item 2</li> 
    </ul> 
</div> 
#wrapper { 
    /*width: 218px;*/ 
    margin: 0px auto; 
    background-color: #cccccc; 
    overflow:hidden; 
    position: absolute; 
    top: 100px; 
    left: 0; 
    z-index: 999; 
    width: 31px; 
} 

меню второго уровня видно только по щелчку на элементе первого уровня (скажем, пункт 1). В списке первого уровня будет место для отображения подуровня. Список первого уровня имеет ширину 31px; когда я нахожу элемент, он получает 187 дополнительных ширины справа, показывая метки (например, пункт 1) с переходом css3. Остальные позиции будут содержать ширину 31 пиксель. Моя цель - составить список второго уровня, чтобы:

  • ширина - 187px;
  • он расположен с вершиной = 0 и справа = 0 относительно элемента первого уровня (другими словами, он выравнивается справа с элементом первого уровня)
  • имеет индекс z выше, чем обертка, не будет перемещать другие предметы при отображении. Я попытался дать позицию относительно элемента первого уровня и абсолютную для подуровня, но не повезло. меню первого уровня при наведении указателя мыши: enter image description here

меню второго уровня отображается фактически: enter image description here

+0

В качестве первого предложения сделайте свой второй уровень ul ребенка первого уровня li, ul не может быть прямой хилью другой ul. –

ответ

0

Простая демонстрация того, что вы ищете here

<div id="wrapper"> 
    <ul class="menu"> 
     <li>item 1 
     <ul class="l2"> 
      <li>item 1.1</li> 
      <li>item 1.2</li> 
     </ul> 
     </li> 
     <li>item 2</li> 
    </ul> 
</div> 

и CSS :

ul.l2 { 
    background-color: grey; 
    display: none; 
    position: absolute; 
    z-index: 99; 
} 

.menu li:hover ul.l2{display:block;} 

Если это то поведение, которое вы хотите, мы можем принять его дальше.

+0

Это близко к точке. Давайте добавим фиксированную ширину для первого уровня и выровняем слева второй уровень с меньшей шириной, и мы близки к точке. Тогда мне придется попробовать адаптировать его к реальному коду. :) –

Смежные вопросы