【发布时间】:2012-11-27 19:23:28
【问题描述】:
我有一个 css 驱动的下拉菜单,在 iphone 或 ipad 上无法正常工作。
它可以在我检查过的所有其他浏览器和设备上正常运行。
我已将其缩小到我没有将菜单文本(例如单词'face')包含在 href 标记中这一事实,就像它在代码的原始版本中所做的那样。这就是与众不同的地方。将href标签包裹在字面上,下拉菜单在ipad / iphone上可以正常工作
显然,我可以只添加 href 并完成,但我真的不想这样做,否则每个有触摸屏的人,通常必须点击菜单文本才能显示下拉菜单,将带到链接点的任何地方。首先破坏了下拉菜单的全部要点!
代码如下:
<div id="dropMenuWrapper">
<div id="dropMenu">
<ul class="level1">
<li class="submenu">Face
<ul class="level2">
<li class="subCatodd"><a href="">powder</a></li>
<li class="subCateven"><a href="">cream</a></li>
</ul>
</li>
</ul>
</div>
</div>
css:
body { behavior: url(includes/csshover.htc);}
div#dropMenu li a:hover, div#dropMenu li.submenu li.submenu:hover {color: #4f4f4f!important;background:#D5E88F;}
#dropMenuWrapper {
width:100%;
height:25px;
margin:0;
font-size:11px;
}
div#dropMenu {
width:750px;
margin:0 auto;
text-align:center;
z-index:1000;
position:relative;
}
div#dropMenu ul {
margin: 0;
padding: 0;
}
div#dropMenu li {
position: relative;
list-style: none;
margin: 0;
float: left;
line-height: 1em;
}
div#dropMenu ul.level1 {
width:750px;
margin:0 auto;
text-align:center;
background:#4F4F4F;
height:25px;
z-index:1000;
}
div#dropMenu li:hover {}
div#dropMenu li.submenu {}
div#dropMenu li.submenu:hover {}
div#dropMenu li a {display: block;text-decoration: none;}
div#dropMenu>ul a {width: auto;}
div#dropMenu ul ul {position: absolute; width: 13em;display: none;}
div#dropMenu ul ul li {border-bottom: 1px solid #CCC; width:13em;}
div#dropMenu li.submenu li.submenu {}
div#dropMenu ul.level1 li.submenu:hover ul.level2,
div#dropMenu ul.level2 li.submenu:hover ul.level3,
div#dropMenu ul.level3 li.submenu:hover ul.level4,
div#dropMenu ul.level4 li.submenu:hover ul.level5 {display:block;z-index:1000;}
div#dropMenu ul.level2 {top: 2.17em; background:#4f4f4f;z-index:1000;}
div#dropMenu ul.level3, div#dropMenu ul.level4, div#dropMenu ul.level5 {top: 0; left: 13em; background:#4f4f4f}
div#dropMenu ul.level2 a {padding: 0.5em 0.25em;color: white; text-transform:none;} /* this is text color on drop-down submenu */
div#dropMenu ul.level2 a:hover {color:#4f4f4f;}
还有一个 jsfiddle:http://jsfiddle.net/VvT6Y/1/
谁能指出一种让下拉菜单在 iphone/ipad 上工作而无需将文本设为链接的方法?
提前致谢:)
【问题讨论】:
-
是否使用 JS 来捕获链接元素上的事件不是一种选择?您可以进行功能检测以查看设备是否支持触摸事件并相应地禁用。或者,您可以保留元素而不是链接并检测触摸事件以应用提供 dropMenu 效果的类。
-
@cimmanon 您好,感谢您的回复。如果我不需要,我真的不想使用 javascript。我已经太多了,而且我的页面很慢(正在处理这个问题)。你能解释一下触摸事件吗,我从来没有听说过这是可能的。