INternet Explorer中的菜单分为两行
Menu running into 2 lines in INternet Explorer
我有一个菜单http://berrisford.gumpshen.com/它使用下面的javascript来计算菜单项的填充。
这在FIrefox中很好,但在IE中,菜单项变得太长,最后一个菜单项溢出到一行。有人能帮忙吗?
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);
}
}
}
http://berrisford.gumpshen.com/
我刚刚比较了Firefox 10、Safari(最新版本)和IE7。菜单只有在Safari中才好看。在Firefox中,最后一个菜单项位于第一个菜单项下方的下一行。在IE7中,所有项目都在一行上,但z索引有问题。如果我在头元素中添加以下CSS,则重叠是固定的:
header {
position: relative;
z-index: 1;
}
我知道这不是你最初的问题,但IE7上有很多用户,所以我会考虑这个问题。
关于你的填充问题。我看到一些填充是双值的。将它们更改为整数或将值设为下限应该会有所帮助:
var diffPer = parseInt(diff / lis.length, 10);
或
var diffPer = Math.floor(diff / lis.length);
对所有部门都这样做。
尝试使浮动元素比包含它们的容器小1个像素,即有时遇到问题,并将其拆分为新行。
所以给var finalWidth = 939;
一个尝试,这应该会修复它。
更改finalWidth不会做太多工作,您还必须将代码中的"940"更改为finalWidth。
试试这个:
var diffPer = (diff / lis.length) - 1; //(or -2)
相关文章:
- 我怎么能用css或(angular)javascript把句子分成两行,只在特定单词后面
- Jquery顶部的两行Javascript不起作用
- Javascript赢得'Don’不要跳过前两行代码
- 这两行jQuery是否等效
- 一行或两行后的CSS单词省略号('..')
- 将鼠标悬停在图像上,图像的不透明度和图像下方标题的颜色会发生变化..同样,当标题变成两行时,它会破坏格式
- 将两行代码与JavaScript组合在一个函数中
- CSS 为 JSON 数据添加两行字符
- 如何让我的 ckEditor 菜单按钮显示在两行而不是四行上
- 在两行(或更多行)上重复 ng
- 如何使用 jQuery 匹配两行内两个锚点的索引
- 如何重命名本机窗口函数,以便我可以删除两行
- CSS:将三个按钮对齐成两行
- 如何将两个表单字段分成两行
- 显示 D3.js将文本标记为两行
- 奇怪的是,在第二次单击切换隐藏/显示按钮而不是第一次单击后,有两行有效
- 在 Javascript 中拆分两行的字符串
- 为什么这两行 jquery 会淘汰另一个 jquery 元素的事件处理程序
- 溢出隐藏的问号将单词拆分为两行
- INternet Explorer中的菜单分为两行