超级菜单和高度相等的div

时间:2013-10-09 11:22:49

标签: jquery html css css3

我一直在研究一个功能齐全的菜单,除了一个设计问题外,功能齐全。

我需要使用放在另一个包装器中的文本来增加子菜单包装div。

目前我的子菜单文本显示在容器外。

jsFiddle Eaxmplejsfiddle Full window view

div class=dropdown嵌套div class=dd-panel

在小提琴示例Menu One > Sub Menu Two中,文本显示在div外部,包含类dropdown包装器。我想让它增长外部div以与嵌套元素一起成长。

我尝试了更改属性,但没有任何工作我可能在某处做错了。

我们需要使用jquery吗,或者可以使用css。

2 个答案:

答案 0 :(得分:1)

作为explained on mdnposition: absolute元素将从正常流中移除,以计算其他元素(兄弟姐妹,父母)的宽度和高度。

您的问题是,您的.dd-panel元素是使用此属性放置的,并且不会计入其.dropdown父级的高度。

我没有看到纯粹的css解决方案。我会在

中添加代码
$(".dropdown ul li").mouseenter()

回调计算ul的高度,显示的.dd-panel的高度,并将.dropdown的高度设置为这两者的最大值。

[编辑]由于某些原因我还没有确定,.dd-panel元素在使用$().height()时不会返回其真实高度。通过您的小提琴,您可以从.media-caption节点获得“正确”的高度。

fiddle


对您的代码的评论:而不是

$(".dropdown ul li").each(function()
     $(this).mouseenter(function(){ ...

你可以简单地写一下:

$(".dropdown ul li").mouseenter(function(){ ...

或使用事件委托:

$(".dopdown").on("mouseenter", "ul li", function(){ ...

答案 1 :(得分:0)

选中此fiddle我已将padding-bottom添加到.dd-panel类