jquery css与chrome / safari浏览器的奇怪问题

时间:2011-09-13 21:21:34

标签: jquery css

这是我正在处理的页面:http://devel.spoorle.com/poc/

在底部有一个名为footer的div,其中包含3个其他div:logo_lower,annoucements_online和menu_lower。其中两个有固定宽度,logo_lower 406px和menu_lower 329px,而annoucements_online从jquery脚本获取宽度:

var annoucementsWidth = $(window).width() - $("#menuLower").width() -    $("#logoLower").width();
$("#annoucementsOnline").css("width",annoucementsWidth + "px");

对于Opera,Firefox甚至IE 8都可以很好地工作,但我对Safari和Chrome有问题。 menu_lower div没有显示......任何想法它可能是什么?我在某处看到jquery为这些浏览器计算了错误的$(widow).width()。我试图将我的代码放在$(window).load()中,但没有成功。 以下是div:

div.logo_lower {
width: 406px;
height: 45px;
display: inline-block;
float: left;
overflow: hidden;
}

div.annoucements_online {
background: #362f2d;
height: 45px;
display: inline-block;
overflow: hidden;
}

div.menu_lower {
background: #362f2d;
width: 329px;
height: 45px;
display: inline-block;
float: right;
overflow: hidden;
}
div.footer {
width: 100%;
height: 45px;
position: fixed;
bottom: 0;
left: 0;
z-index: 100;
background: rgba(0, 0, 0, 0);
}

3 个答案:

答案 0 :(得分:0)

尝试获取这样的宽度而不是使用jQuery。

document.documentElement.clientWidth

答案 1 :(得分:0)

您的jQuery需要进入$(document).ready()而不是$(window)。此外,当我在Chrome上测试您的网站时,我得到的结果与Firefox相同。

如果jQuery打得不好,你可以随时使用vanilla JavaScript routemore info),虽然这更复杂,因为jQuery通常会为你提供所有的兼容性。

答案 2 :(得分:0)

好的我以其他方式解决了这个问题,我只是将公告div缩小了5px:

var annoucementsWidth = $(window).width() - $("#menuLower").width() -    $("#logoLower").width() - 5;
$("#annoucementsOnline").css("width",annoucementsWidth + "px");