我的列表项几乎完全隐藏,在页面加载时设置列表列的高度

时间:2014-08-08 19:31:58

标签: javascript jquery css

我的页脚中有一个列表,链接很少,当我点击我最后列出的元素时,“查看更多链接”它使用jQuery slideToggle()将我的列表替换为新成员。

但是有了这个,我看到我的页脚底部再次下降。

感谢用户George,这个问题已经解决,使用jQuery,通过在页面加载时设置#col的高度,这是我的代码:

$('#col').height(function(_,v){ return v; });

但是通过这个解决方案,我得到了另一个我无法理解的问题

我有5个版本的设计使用媒体查询,上面我有我的移动版本的图像。如您所见,我的链接“查看更多链接”几乎完全隐藏。

同样在Internet Explorer上,我几乎在我的项目的所有媒体查询中都有这个问题......

enter image description here

你知道为什么会发生这种情况吗?

我在这里有完整的例子:http://jsfiddle.net/jcak/4ma6es6h/8/

4 个答案:

答案 0 :(得分:1)

如果您设置min-height而不是height,则您的div将永远不会太小,并且不会在最小高度以下崩溃。

但这仍然无法解决为什么你的身高太小。

您可能需要查看您的包装盒尺寸。请查看此处的架构,其中包括高度和非高度: http://api.jquery.com/innerheight/http://api.jquery.com/outerHeight/

也许你没有考虑填充/边距/边框。

答案 1 :(得分:1)

使用min-height来避免隐藏的问题。 在较旧的IE中,IE< 9,不支持媒体查询,你可以使用Respond.js,它会将媒体查询添加到IE 6-8,这是twitter bootstrap推荐的。

如果您对IE有进一步的问题,请使用lint for es3检查js,检查jshint并使用一些polyfill,如es5-shim,如果您需要来自es5的内容。

答案 2 :(得分:1)

我不认为这与媒体查询有关,因为如果没有它们,你会遇到同样的问题。函数'函数(_,v){return v; }'返回高度没有边距或填充,这可能会切断底部的链接。也许试试这个:

var $col = $('.col4');
$col.height($col.outerHeight(true));

编辑:我刚刚注意到你上面的评论,你说清爽有时会让它发挥作用。此问题可能是由于在执行代码时页面未完全呈现,因此调用了错误的高度。

此外,您为多个元素使用相同的ID(' col')。 IE会讨厌这个并且可能会抛出无声错误。 ID应该是完全唯一的!

答案 3 :(得分:0)

较早版本的IE可能会导致出现此问题,也许您可​​以尝试限制它们或添加一个无法正常工作的通知,因为“您正在使用旧版本的Internet Explorer”。

在Mozilla Firefox,Chrome和最新的Internet Explorer中运行良好。