css раскрывающееся меню, блокирующее родительское меню

0

Это первый раз, когда я попытался создать правильное горизонтальное меню, и у меня возникла проблема. Когда я наводил курсор на подменю, его подменю закрывает. Протестировано в Chrome, Firefox и IE, все они имеют одинаковую проблему. Я всю неделю искал решение, поэтому любая помощь была бы оценена. Heres меню html

    <li><a>Courses</a>
 <ul>
  <li><a>RII31813</a>
   <ul>
    <li><a>Student Information</a></li>
    <li><a>BSBWHS301A Maintain workplace saftey</a></li>
    <li><a>RIIBEF301D Run on-site operations</a></li>
    <li><a>RIICOM201D Communicate in the workplace</a></li>
    <li><a>RIINHB301D Set up and prepare for drilling operations</a></li>
    <li><a>RIIRIS301D Apply risk management processes</a></li>
    <li><a>RIISAM209D Carry out operational maintenance</a></li>
    <li><a>MSAPMSUP172A Identify and minimise environmental hazards</a></li>
    <li><a>AEDEL301A Provide work skill instruction</a></li>
    <li><a>RIINHB307D Conduct conventional core drilling</a></li>
    <li><a>RIINHB308D Conduct wireline core drilling</a></li>
    <li><a>RIINHB324D Carry out grouting or cementing operations</a></li>
    <li><a>RIINHB208D Assist diamond core drilling</a></li>
    <li><a>RIIQUA201D Maintain and monitor site quality standards</a></li>
    <li><a>RIIVEH305D Operate and maintain a four wheel drive vehicle</a></li>
   </ul>
  </li>
 </ul>
</li>

и heres меню CSS:

#menu ul {
    margin: 0px 0 0 0;
    _margin: 0; /*IE6 only*/
    opacity: 0;
    visibility: hidden;
    position: absolute;
    top: 38px;
    left: 0;
    z-index: 1;    
    background: #444;   
    background: linear-gradient(#444, #111);
    box-shadow: 0 -1px 0 rgba(255,255,255,.3);  
    border-radius: 3px;
    transition: all .2s ease-in-out;  
}

#menu li:hover > ul {
    opacity: 1;
    visibility: visible;
    margin-left: 0;
}

#menu ul ul {
    top: 0;
    left: auto;
    float:right;
    margin: 0 0 0 20px;
    _margin: 0; /*IE6 only*/
    box-shadow: -1px 0 0 rgba(255,255,255,.3);      
}

#menu ul li {
    float: none;
    display: block;
    border: 0;
    _line-height: 0; /*IE6 only*/
    box-shadow: 0 1px 0 #111, 0 2px 0 #666;
}

#menu ul li:last-child {   
    box-shadow: none;    
}

#menu ul a {    
    padding: 10px;
    width:auto;
    _height: 10px; /*IE6 only*/
    display: block;
    white-space: nowrap;
    float: none;
    text-transform: none;
}

#menu ul a:hover {
    background-color: #0186ba;
    background-image: linear-gradient(#04acec, #0186ba);
}

#menu ul li:first-child > a {
    border-radius: 3px 3px 0 0;
}

#menu ul li:first-child > a:after {
    content: '';
    position:absolute;
    left: 40px;
    top: -6px;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #444;
}

#menu ul ul li:first-child a:after {
    left: -6px;
    top: 50%;
    margin-top: -6px;
    border-left: 0; 
    border-bottom: 6px solid transparent;
    border-top: 6px solid transparent;
    border-right: 6px solid #3b3b3b;
}

#menu ul li:first-child a:hover:after {
    border-bottom-color: #04acec; 
}

#menu ul ul li:first-child a:hover:after {
    border-right-color: #0299d3; 
    border-bottom-color: transparent;   
}

#menu ul li:last-child > a {
    border-radius: 0 0 3px 3px;
}

Любая помощь приветствуется, спасибо

  • 0
    Весь ваш CSS использует #menu , но нет элемента с идентификатором menu , хаха. Спасибо за попытку локализовать проблему, но нам нужно еще немного HTML, чтобы очень легко помочь
  • 0
    Пожалуйста, создайте демо jsfiddle.net
Показать ещё 1 комментарий
Теги:
drop-down-menu

1 ответ

0
Лучший ответ

Примечание. Я не знаю об исходном HTML-коде, я предположил, что это может быть правильный HTML и продолжался с ним

HTML:

  <ul id="menu">
    <li><a>Courses</a>
        <ul>
        <li><a>RII31813</a>
        <ul>
            <li><a>Student Information</a></li>
            <li><a>BSBWHS301A Maintain workplace saftey</a></li>
            <li><a>RIIBEF301D Run on-site operations</a></li>
            <li><a>RIICOM201D Communicate in the workplace</a></li>
            <li><a>RIINHB301D Set up and prepare for drilling operations</a></li>
            <li><a>RIIRIS301D Apply risk management processes</a></li>
            <li><a>RIISAM209D Carry out operational maintenance</a></li>
            <li><a>MSAPMSUP172A Identify and minimise environmental hazards</a></li>
            <li><a>AEDEL301A Provide work skill instruction</a></li>
            <li><a>RIINHB307D Conduct conventional core drilling</a></li>
            <li><a>RIINHB308D Conduct wireline core drilling</a></li>
            <li><a>RIINHB324D Carry out grouting or cementing operations</a></li>
            <li><a>RIINHB208D Assist diamond core drilling</a></li>
            <li><a>RIIQUA201D Maintain and monitor site quality standards</a></li>
            <li><a>RIIVEH305D Operate and maintain a four wheel drive vehicle</a></li>
        </ul>
    </li>
 </ul>

CSS:

Я изменил положение внутренней <ul>

#menu ul ul {
    top: 0;
    left: 120px;
    float:right;
    margin: 0 0 0 20px;
    _margin: 0; /*IE6 only*/
    box-shadow: -1px 0 0 rgba(255,255,255,.3);      
}

Здесь работает отлично: JSFIDDLE DEMO

  • 0
    Спасибо, я пробовал это раньше, но с небольшим количеством переделок и парой дополнительных идентификаторов удалось сделать это отлично, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню