如何为移动设备采用下拉菜单?
<li id="citylink">
Киев <span class="arrow">▼</span>
<ul>
<a href="odessa.html" id="odd"><li>Одесса</li></a>
</ul>
</li>
</ul>
CSS:
ul {
text-align: left;
display: inline;
margin: 0;
padding: 15px 30px 17px 0;
list-style: none;
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
-moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
}
ul li {
font-family: regular;
display: inline-block;
margin-right: -4px;
position: relative;
padding: 15px 68px 20px;
background: #313131;
color: white;
cursor: pointer;
-webkit-transition: all 0.2s;
-moz-transition: all 0.2s;
-ms-transition: all 0.2s;
-o-transition: all 0.2s;
transition: all 0.2s;
}
ul li:hover {
background: #555;
color: #fff;
}
ul li ul {
padding: 0;
position: absolute;
top: 48px;
left: 0;
width: 184px;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
display: none;
opacity: 0;
visibility: hidden;
-webkit-transiton: opacity 0.2s;
-moz-transition: opacity 0.2s;
-ms-transition: opacity 0.2s;
-o-transition: opacity 0.2s;
-transition: opacity 0.2s;
}
ul li ul li {
background: #1bbc9b;
display: block;
color: #fff;
text-shadow: 0 -1px 0 #000;
}
ul li ul li:hover { background: #666; }
ul li:hover ul {
display: block;
opacity: 1;
visibility: visible;
}
答案 0 :(得分:0)
触摸设备在单击后触发悬停状态。我相信这是因为注册实际点击事件300秒延迟而不是触摸某事。
无论哪种方式,在这种情况下,您应该启用一些JavaScript来监视被点击元素的“状态”。
EX: - 设置初始状态(关闭时可能为false) - 单击时,检查状态(查看其设置为true还是false) - 如果设置为false,则将state更改为true,添加class以启用“active”状态 - 如果设置为true,则将状态更改为false,删除“活动”状态以关闭菜单。
这样,您可以监视状态并根据状态应用适当的类。这将提供一种简单的方法来管理状态与交互,同时保持样式分离。
基于状态的CSS类必须改变布局(隐藏或打开导航)