如果你看看下面的jsfiddle,它有3个下拉菜单(DROP1,DROP2,DROP3)。第一个的内容粘在左边缘,然而第二个和第三个的内容从它们各自的按钮按钮开始。
jsfiddle:http://jsfiddle.net/6a3eZ/73/
问题是:如何制作第二个和第三个下拉列表'内容也粘在左边缘(没有对其应用不同的样式,带有负边距)。
非常感谢。
jQuery(document).ready(function ($) {
jQuery('.menu ul').slideUp(0);
jQuery('.menu li.sub').click(function () {
var target = jQuery(this).children('a');
if(target.hasClass('menu-expanded')){
target.removeClass('menu-expanded');
}else{
jQuery('.menu-item > a').removeClass('menu-expanded');
target.addClass('menu-expanded');
}
jQuery(this).find('ul:first')
.slideToggle(400)
.end()
.siblings('li')
.find('ul')
.slideUp(400);
});
});
答案 0 :(得分:0)
通过将position: absolute
和left: 0
添加到子菜单,它会粘在左侧。
ul.sub-menu {
position: absolute;
left: 0;
...
}
这种情况发生了,因为它相对于具有fixed
,relative
或absolute
定位的下一个父容器。这就是#menu
。
问题是,子菜单被取出正常流程,底部的三个菜单项重叠。