#html #css
#HTML #css
Вопрос:
Ниже это меню с выпадающими подменю.
В Chrome подменю отображаются под меню, но в Firefox и IE они всегда отображаются под первым пунктом.
Если я изменю ‘float: none’ на ‘float: left’, это сработает, и они появятся под меню, но все пункты подменю станут встроенными и будут следовать один за другим.
Есть ли простое исправление (вместо изменения html, поскольку оно генерируется из XML-файла на сервере, но я могу изменить, если потребуется) в css?
Спасибо.
<html>
<head>
<style>
#cat_nav li > ul { display: none; }
#cat_nav ul{list-style-type: none;}
#cat_nav ul li {float: none; position: relative} /*change float to not none and it aligns but items are inline */
#cat_nav ul li:hover > ul {display: block;}
#cat_nav ul ul {min-width: 150px;background-color:#DFDFDF;padding:4px 0 4px 0;position:absolute;}
</style>
</head><body>
<nav id="cat_nav">
<ul class="products_btn">
<li style="display: inline">
<a href="">PCBS1</a>
<ul class="dropdown">
<li> <a href="x" title="Fuzz">Fuzz 1-1</a></li>
<li> <a href="x" title="Fuzz">Fuzz 1-2</a></li>
<li> <a href="x" title="Fuzz">Fuzz 1-3</a></li>
</ul>
</li>
<li style="display: inline">
<a href="">PCBS2</a>
<ul class="dropdown">
<li> <a href="x" title="Fuzz">Fuzz 2-1</a></li>
<li> <a href="x" title="Fuzz">Fuzz 2-2</a></li>
<li> <a href="x" title="Fuzz">Fuzz 2-3</a></li>
</ul>
</li>
</ul>
</body></html>
Комментарии:
1. Это
#cat_nav ul li
предназначено для ВСЕХli
, если вы хотите, чтобы подменю выполняло что-то еще, вам придется настроить их отдельно.
Ответ №1:
Измените значение float:none
на float:left
вкл #cat_nav ul li
и добавьте это
#cat_nav ul li li {
float:none
}
чтобы отменить перемещение элементов списка в элементах списка (и, таким образом, они отображаются в виде стека, а не встроены).
Ответ №2:
Вам нужно отредактировать выбор и позиционирование. Я внес несколько небольших изменений в ваш код с помощью рабочего примера, протестированного в firefox. Смотрите ниже.
ДЕМОНСТРАЦИЯ http://jsfiddle.net/RDQW8/1 /
#cat_nav li > ul {
display: none;
}
#cat_nav ul {
list-style-type: none;
}
#cat_nav ul > li {
position: relative
}
/*change float to not none and it aligns but items are inline */
#cat_nav ul li:hover > ul {
display: inline-block;
}
#cat_nav ul ul {
min-width: 150px;
background-color:#DFDFDF;
padding:4px 0 4px 0;
top:15px;
position:absolute;
}