2016-06-25 2 views
2

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

<ul id="menu"> 

    <li><a href="#title">Home</a></li> 
    <li><a href="#part_1">Commandes de base --->></a> 
    <ul class="hidden"> 
     <li><a href="#ls">ls</a></li> 
     <li><a href="#cd">cd</a></li> 
     <li><a href="#mv">mv</a></li> 
     <li><a href="#cp">cp</a></li> 
     <li><a href="#mkdir">mkdir</a></li> 
     <li><a href="#cat">cat</a></li> 
     <li><a href="#find">find</a></li> 
     <li><a href="#grep"></a></li> 
    </ul> 
    </li> 

    <li><a href="#part_2">Commandes sytème --->></a> 
    <ul class="hidden"> 
     <li><a href="#top">top</a></li> 
     <li><a href="#chmod">chmod</a></li> 
     <li><a href="#du">du</a></li> 
     <li><a href="#reboot"></a></li> 
    </ul> 
    </li> 

</ul> 

и вот CSS:

/*Menu*/ 

#menu { 
    float: left; 
} 

ul { 
    list-style:none; 
    width: 150px; 
    display:inline-block; 
    border: 1px solid black; 
} 

#menu li { 
    /*border: 1px solid black;*/ 
    margin-bottom: 0px; 
} 

#menu li a:hover { 
    font-weight: bold; 
} 

.hidden { 
    margin-top: 0px; 
} 

/*Hide elements*/ 

#menu li ul li { 
    display: none; 
} 

/*Reveal elements on hover*/ 

#menu li a:hover + .hidden li, .hidden:hover { 
    display:block; 
} 

Я пробовал много вещей, что дает запас 0, чтобы избежать «пробел», где он будет установлен обратно на дисплей: нет, сделать более крупная коробка для более простительной зоны зависания ... Пока нет результата, текст всегда исчезает, прежде чем я смогу что-либо сделать.

Благодарим за помощь.

ответ

1

Это позволит вам навести курсор в подменю, если вы осторожно переместите мышь в подменю.

/* I added 'li' to the end of second rule and used !important 
    to combat the style being overridden */ 

#menu li a:hover + .hidden li, .hidden:hover li { 
    display:block !important; 
} 

enter image description here

https://jsfiddle.net/6wLevbt9/

+0

Это действительно сработало! Плюс я узнал новое свойство в CSS:! Important. Большое спасибо за вашу помощь, очень ценим! – EtienneDh

+0

Ну, я ответил на вопрос, но обычно не призывал бы вас по этому пути. Есть лучшие способы добиться того, что вы пытаетесь сделать. Посмотрите [здесь] (http://www.howtocreate.co.uk/tutorials/testMenu.html) и [здесь] (https://www.thecssninja.com/css/css-tree-menu). Хотя это хорошо знать, '! Important' обычно используется в качестве последней попытки решить проблему CSS. Удачи, @EtienneDh –

1

Включите инструмент осмотра. Вероятно, вы должны сделать область, на которой вы нависаете больше. Когда вы пытаетесь выбрать из выпадающего меню, вы «вытаскиваете мышью» область зависания, которая показывает выпадающее меню.

+0

Да, вот проблема я пытаюсь исправить, то инструмент проверки помог мне увидеть эту область, но я все еще изо всех сил пытаюсь получить эту область больше, после нескольких корректировок, становится все лучше, но он шатается много, что затрудняет выбор правильно – EtienneDh

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