【发布时间】:2013-11-08 12:13:57
【问题描述】:
我目前正在处理下一页上的几个下拉菜单: http://icao.tungsten.hireserve-test.com/home.html
最初,我们只有其中一个菜单,但我们的客户后来更改了他们的模板,我们现在需要实现两个下拉菜单。以前这是通过触发 show() 和 hide() 的 jQuery hover() 事件完成的,但现在我用 CSS 替换了它。
li.dynamic-children{
position: relative
}
li.dynamic-children ul{
display: none;
position: absolute;
}
li.dynamic-children:hover ul{
display: block;
left: -1px;
top: 18px;
position: absolute;
z-index: 100
}
li.dynamic-children:hover ul span{
width: 100%
}
下拉菜单在悬停时成功显示,但是因为它是使用 CSS 完成的,所以似乎没有任何方法可以确保当用户离开触发下拉菜单的链接时下拉菜单仍然存在。这意味着用户无法选择下拉菜单中的任何项目,使其无用。
你们中的任何人对我如何强制菜单持续足够长的时间以使用户能够对下拉菜单进行选择有任何想法吗?
编辑:
基于下面提供的一些代码,我现在包含了以下 CSS 规则:
.s4-tn .horizontal ul.dynamic {
background-color: #ECF4FC;
border-top:4px solid #003D78;
margin: 0;
width: 255px;
z-index: 1000 !important;
}
.menu-horizontal li.static, .menu-horizontal a.static, .menu-horizontal span.static {
float: left;
padding-bottom: 5px;
}
这些规则导致菜单保持不变,但在 IE7 中,下拉菜单现在落后于页面上的其他元素,使其在此浏览器中仍然无用。我尝试了许多 z-index 修复无济于事。
【问题讨论】:
-
你的 CSS 搞砸了。在文件 controlesSharepoint.css 的第 99 行中,您要么必须增加 a 标签的高度,要么减少 ul 的 margin-top。设置
margin: 0px 0 0 0;并完成。使用 chrome 检查器进行检查 -
这不是我的 CSS。它是由我们的客户提供的,因此它为什么如此混乱。不幸的是,我们不应该改变太多。
-
但是 css 是唯一的罪魁祸首。您必须更正相同的内容才能使功能正常工作。也可以在第 2840 行增加
height:34px。 -
我知道。如果有的话,我们应该用 icams-specific.css 文件覆盖他们的 css。
标签: html css drop-down-menu