Javascript 在INternet Explorer中,菜单运行到两行
我有一个菜单omn,它使用下面的javascript计算菜单项的填充 这在FIrefox中运行良好,但在IE中,菜单项变得太长,最后一个菜单项溢出到新行。有人能帮忙吗Javascript 在INternet Explorer中,菜单运行到两行,javascript,jquery,Javascript,Jquery,我有一个菜单omn,它使用下面的javascript计算菜单项的填充 这在FIrefox中运行良好,但在IE中,菜单项变得太长,最后一个菜单项溢出到新行。有人能帮忙吗 var finalWidth = 940; var totWidth = 0; var lis = $("header ul.lv1 > li").each(function () { totWidth += $(this).width(); }); var diff = finalWidth - totWidt
var finalWidth = 940;
var totWidth = 0;
var lis = $("header ul.lv1 > li").each(function () {
totWidth += $(this).width();
});
var diff = finalWidth - totWidth;
var diffPer = diff / lis.length;
if (diff > 0) {
$("header ul.lv1 > li a").each(function () {
$(this).css('padding-right', diffPer / 2);
$(this).css('padding-left', diffPer / 2);
});
var totWidth2 = 0;
var lis2 = $("header ul.lv1 > li").each(function () {
totWidth2 += $(this).width();
});
if ($.browser.msie) {
var version = parseInt($.browser.version, 10);
if (version < 9) {
$("header ul.lv1 > li a").last().css('padding-right', (940 - totWidth2) - 20);
var lastItemPaddding = (Math.floor(diffPer / 2) + (940 - totWidth2));
$("header ul.lv1:last-child li:last-child a").css('padding-right', lastItemPaddding);
}
}
else {
var version = parseInt(detectBrowserVersion(), 10);
if (version == 14) {
$("header ul.lv1 > li a").last().css('padding-right', (940 - totWidth2) - 20);
var lastItemPaddding = (Math.floor(diffPer / 2) + (940 - totWidth2));
$("header ul.lv1:last-child li:last-child a").css('padding-right', lastItemPaddding);
}
}
}
尝试使浮动元素比包含它们的容器小1个像素,即有时会出现问题并将其拆分为新行
因此,给出var finalWidth=939;尝试一下,这应该可以解决问题。尝试使浮动元素比包含它们的容器小1个像素,即有时会出现问题,并将其拆分为新行
因此,给出var finalWidth=939;尝试一下,这会解决问题。更改finalWidth不会做太多工作,您必须将代码中的940也更改为finalWidth 试试这个:
var diffPer = (diff / lis.length) - 1; //(or -2)
更改finalWidth不会做很多工作,您必须将代码中的940也更改为finalWidth 试试这个:
var diffPer = (diff / lis.length) - 1; //(or -2)
我刚刚比较了Firefox10、Safari最新版本和IE7。菜单只有在狩猎时才好看。在Firefox中,最后一个菜单项位于下一行,在第一个菜单项下面。在IE7中,所有项目都在一行上,但z索引有问题。如果我将以下CSS添加到header元素,则重叠是固定的:
header {
position: relative;
z-index: 1;
}
我知道这不是你的第一个问题,但是IE7上有很多用户,所以我会考虑这个问题。
关于你的填充问题。我看到一些填充物是双值的。将其更改为整数或设置值应有助于:
var diffPer = parseInt(diff / lis.length, 10);
或
对所有部门都这样做。我刚刚比较了Firefox10、Safari最新版本和IE7。菜单只有在狩猎时才好看。在Firefox中,最后一个菜单项位于下一行,在第一个菜单项下面。在IE7中,所有项目都在一行上,但z索引有问题。如果我将以下CSS添加到header元素,则重叠是固定的:
header {
position: relative;
z-index: 1;
}
我知道这不是你的第一个问题,但是IE7上有很多用户,所以我会考虑这个问题。
关于你的填充问题。我看到一些填充物是双值的。将其更改为整数或设置值应有助于:
var diffPer = parseInt(diff / lis.length, 10);
或
对所有部门执行此操作。哪一版本的Internet Explorer?还要检查IE8网页错误详细信息用户代理:Mozilla/4.0兼容;msie8.0;WindowsNT6.1;WOW64;三叉戟/4.0;EasyBits GO v1.0;GameXN-GO v1.0;SLCC2。NET CLR 2.0.50727。NET CLR 3.5.30729。NET CLR 3.0.30729;媒体中心PC 6.0;InfoPath.3时间戳:Sat,2012年3月3日14:35:41 UTC消息:对象不支持此属性或方法行:501字符:13代码:0 URI:哪个版本的Internet Explorer?还要检查IE8网页错误详细信息中的站点是否已断开用户代理:Mozilla/4.0兼容;msie8.0;WindowsNT6.1;WOW64;三叉戟/4.0;EasyBits GO v1.0;GameXN-GO v1.0;SLCC2。NET CLR 2.0.50727。NET CLR 3.5.30729。NET CLR 3.0.30729;媒体中心PC 6.0;InfoPath.3时间戳:Sat,2012年3月3日14:35:41 UTC消息:对象不支持此属性或方法行:501字符:13代码:0 URI: