2012-03-08 107 views
0

我不知道为什么我的脚本不能正常工作......jQuery的CSS高度

$(document).ready(function() { 

var div_height = $("#content").height(); 
$(".leftSideBar").css("height", div_height); 

var div_height = $("#content").height(); 
$(".rightSideBar").css("height", div_height); 

}); 

正如你可以看到http://www.willruppelglass.com/侧边栏不走一路下来,谁能告诉我为什么它不?我对jQuery有点新鲜,我认为它与文档就绪功能有关,要详细了解这一点,但如果任何人都可以指出我正确的方向,那就太棒了。

+1

不要忘记,当你设置高度为CSS属性,你需要一个测量。 $(“。leftSideBar”)。css(“height”,div_height +“px”); – 2012-03-08 18:38:43

+0

不相关,但请不要在您的网站中使用巨大的图像,然后使用CSS来使它们看起来更小。浏览器仍然需要加载大图像,它只显示它很小。也许你现在只是做了填充,我不知道。 – Luke 2012-03-08 18:47:39

+0

此外,在更广泛的监视器中,页眉和页脚不居中,而是向左侧漂浮。所以你的悬停菜单不排队。 – Luke 2012-03-08 18:50:34

回答

2

它看起来像你的身高是关闭按照#content部分中图像的高度。尝试在window.load运行的代码时,所有的页面上的资产已完成加载时触发:

$(window).bind('load', function() { 

    //since your running the same function on the elements, 
    //you can select them both at once, 
    //which removes the need for a variable that stores the height 
    $(".leftSideBar, .rightSideBar").css("height", $("#content").height()); 

}); 

我注意到,你的页面使用web字体;可能是因为document.ready触发时,webfont尚未呈现,并且在呈现时,它会使#content元素更高。如果是问题,则绑定到window.load应该有所帮助。

+0

太棒了,谢谢Jasper :) – user979331 2012-03-08 18:46:30

1
  1. 删除第二var div_height = $("#content").height();
  2. 使用outerHeight()的功能,而不是height()
  3. 则可能需要等到图像加载,或通过属性高度指定其高度
+0

This Works Too Thanks Simon – user979331 2012-03-08 18:39:11

0

你使用什么浏览器? Chrome浏览器(也可能是所有的webkit)如果没有高度和宽度属性,将不会正确计算图片的高度。尝试给你的图像的宽度和高度的属性,并看看是否有效(Jasper的答案不同的方法)。