下拉宽度修复,通过 JS 计算
drop down width-fix that is calculated via JS
我正在修复通过 js 出现的下拉宽度问题。
下拉菜单(子ul)宽度缩短了一些px。我找不到现有的 js 代码,所以我计算了 ul 宽度并对其进行了一些像素的添加。
问题在于 IE 浏览器内联宽度以 em 形式出现,而在 Firefox 中以 px 形式出现。 这就是为什么两个浏览器中的宽度不同。
这是我的代码:
<script>
j$("#container .sf-menu").each(function () {
j$(".menu-list").each(function () {
j$i = j$(this).width();
j$(this).width(j$i + 6)
});
});
</script>
当我删除我的 js 代码时,默认情况下它的内联宽度以 em 为单位。
请让我知道如何在所有浏览器中以 em 制作宽度大小。
<div id="container">
<ul class="sf-menu sf-js-enabled sf-shadow">
<li class="selected"><a href="#" id="ctl02_ChapterButtonGroupLoopedlbtn1" onclick="return false;" class="sf-with-ul" style="padding-right: 4.5em;">Looping</a>
<ul class="menu-list" style="float: none;">
<li style="white-space: normal; float: left; width: 100%;">
<input type="submit" class="FormButton loop" id="ctl02_8b81504d-2351-430d-9b68-eba2e0e6bd38" value="chap1" name="ctl02$8b81504d-2351-430d-9b68-eba2e0e6bd38" >
</li>
</ul>
</li>
</ul>
</div>
<style>
#container {
position: relative;
}
.sf-menu li ul {
background: url("/a/images/drop-bg.png") repeat-x scroll 0 0 #D8D8D8;
border: 1px solid #B0B0B0;
margin: 0;
padding: 0;
}
.sf-menu ul {
position: absolute;
top: -999em;
width: 10em;
}
.sf-menu, .sf-menu * {
font: 11px Verdana,Geneva,sans-serif;
list-style: none outside none;
margin: 0;
padding: 0;
right: 0;
top: 0;
}
.sf-menu li li {
background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
border: medium none;
text-align: left;
}
.sf-menu ul li {
margin: 0;
padding: 0;
position: relative;
right: 0;
width: 100%;
}
.chapter-title .sf-menu li {
right: 0;
}
.chapter-title li.selected, .chapter-title li.selected:hover {
background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
border: 1px solid #FFFFFF;
border-radius: 3px 3px 3px 3px;
}
.chapter-title li.selected .sf-with-ul, .chapter-title li.selected .sf-with-ul {
background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
}
.chapter-title li.selected .sf-with-ul, .chapter-title li.selected .sf-with-ul {
background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
}
.chapter-title li.selected a {
color: #FFFFFF;
}
.chapter-title .sf-menu a {
padding-left: 5px;
top: -2px;
}
</style>
我成功地在所有浏览器中制作了"px"中的宽度,但在IE-7中宽度与其他浏览器不同。
在所有浏览器中,通过js显示为"283px",但在IE-7中,它是"271px"。我无法找出代码的问题:
<script>
j$("#container").find("#ctl02_ChapterButtonGroupLoopedlbtn1").next("ul").addClass("menu-list");
j$("#container .sf-menu").each(function () {
j$(".menu-list").each(function () {
j$i = j$(this).width();
j$(this).width(j$i + 6 + "px")
});
});
</script>
相关文章:
- 通过js在新选项卡中有条件地打开url
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 为什么在这个网站上不能通过JS访问元素
- 打开“;检查元件”;窗口通过JS
- 当一些事情可以通过JS或CSS完成时,我应该选择哪种方式
- 如何通过js更改td的属性
- 通过js设置页面历史记录和页面内容
- 通过JS添加类时应用CSS转换
- jQuery preventdefault提交表单没有'通过js函数提交表单时无法工作
- JS/JON-通过JS访问JSON中的多个数组
- 如何通过 JS 将内容从一个表单中的一个文本框复制到另一个表单中的另一个文本框
- 添加一个元素,它's通过JS的类名
- 通过JS/AAJAX在XML文件中搜索1个数据
- 如何通过JS在不干扰其标记的情况下更改HTML文档中字符串的所有实例
- 如何通过JS将值传递给控制器和局部视图
- 如何通过JS将riot标记附加到根
- 将href链接添加到通过js鼠标悬停显示的图像
- CSS 大小相互依赖和在 Chrome 中通过 JS 调整大小:可能的错误
- 通过JS更新时,Angularjs输入不会更改,而不是手动更新
- 通过.js包含或调用php或html文件