0

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

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

目前我的子菜单文本出现在容器外。

jsFiddle Eaxmplejsfiddle 全窗口视图

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

在小提琴示例Menu One > Sub Menu Two 中,文本显示在带有类dropdown包装器的 div 之外。我希望它与嵌套元素一起增长外部 div。

我尝试了更改属性,但没有任何效果我可能在某处做错了什么。

我们需要用 jquery 来做,还是用 css 来做。

4

2 回答 2

1

正如mdn 中所解释的position: absolute元素被从正常流程中移除,以计算其他元素(兄弟姐妹、父母)的宽度和高度。

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

我没有看到一个纯 CSS 解决方案。我会将代码添加到

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

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

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

小提琴


对您的代码的注释:而不是

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

你可以简单地写:

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

或使用事件委托:

$(".dopdown").on("mouseenter", "ul li", function(){ ...
于 2013-10-09T12:24:33.287 回答
0

检查这个小提琴我已经在你的 .dd-panel 类中添加了 padding-bottom

于 2013-10-09T13:24:28.483 回答