0

基本上,我们有一个分为 3 个级别的商店类别导航。我们需要做的是让 UL 的高度至少延伸到其孩子的高度。

所以比如说#nav ul是600px,#nav ul ul会自动变成至少600px。但是,如果#nav ul ul ul是 750px,那么它需要能够达到那么高,而不是被限制为 600px。

我们可以得到它,如果父级为 600px,所有子级都设置为 600px 的 .height,但是你如何将其设置为 min-height?

例如见链接:

如您所见,第二级调整为父级的高度,但第三级被限制为该长度,因为 js 设置了高度,而不是 min-height

谢谢,迈克

4

4 回答 4

0

您无法检索隐藏元素的尺寸。结果将是高度和宽度为零。您可以使用 css 将子 UL 位置设置为屏幕外,而不是隐藏它们,例如:

 ul ul {position: absolute; left: 80px; top: -999em}
 ul li:hover > ul {top:0;}

由于它们没有隐藏,因此您的setAllToMaxHeight()方法有效

演示:http: //jsfiddle.net/bzsM9/18/

于 2012-12-11T12:24:50.267 回答
0

只需使用.css('min-height', someHeight)而不是.height(someHeight)

于 2012-12-11T12:04:33.550 回答
0

我不明白你想要什么,但我可以做我能做的;)

$(document).ready( function() {
var i1 = 600;
var i2 = $("#nav ul ul").height();
var i3 = $("#nav ul ul ul").height();
if(i2 >= i1) {
$("#nav ul ul").css({ 'min-height':'600px' });
}
if(i3 >= i1) {
$("#nav ul ul ul").css({ 'min-height':'600px' });
}
});

没有downvoting啊,如果它是错的

于 2012-12-11T12:08:32.233 回答
0

是你要找的吗? 演示

$(document).ready(function(){
    $('ul').hover(function(){
         $('ul').setAllToMaxHeight();
    });
});​
于 2012-12-11T12:18:06.987 回答