我有一个问题已经被问到here,但那里提供的解决方案没有用。问题是我使用jQuery height()函数返回div的高度。它在Firefox中运行良好,但在Chrome中返回的值小于300px ......
您可以看到此错误here的示例。虽然我必须说它是希伯来语。虽然这不应该太重要......
有没有人曾经发生过这种情况?这是计算高度的代码:
var heightLeftCol = $('#leftCol').height();
var sidebarHeight = $('#sidebar').height();
var minHeight = heightLeftCol > sidebarHeight ? heightLeftCol : sidebarHeight;
$('#postArea').css('min-height', minHeight+100);
编辑:这个问题未修复,但以我不喜欢的方式解决,但它现在会做。这是我提出的“解决方案”:
if (jQuery.browser.safari) {
$('#postArea').css('min-height', minHeight+400 + 'px');
}
else {
$('#postArea').css('min-height', minHeight+100 + 'px');
}
由于Safari和Chrome都在WebKit上运行,browser.safari
实际上也选择了Chrome。我绝对不认为这是最佳解决方案。
谢谢! 阿米特
答案 0 :(得分:16)
在Chrome中,div的高度不包括300像素高图像“sheli.jpg”的高度,因为它未在html或css中的任何位置指定。如果您在< img>中指定height="300"
标签或height: 300px;
作为其风格的一部分,它将起作用。
答案 1 :(得分:8)
如果因为您当时的图片尚未加载,则高度为0.这就解释了Chrome中的高度不足。要解决此问题,请将设置高度的代码放在jQuery(window).load()
内,如下所示:
jQuery(window).load(function(){
jQuery("#div1").css("height", jQuery("#div2").height());
});
答案 2 :(得分:5)
根据讨论,Justin和我在上面的评论中将jQuery代码包装在$(window).load()中将允许此代码在图像完全加载后正确执行。