我正在努力实现的效果:
在Twitter的新重新设计中,他们为帐户设置区域实施了“粘性”下拉菜单。
基本上,当您点击顶部黑色全局导航栏中的用户名时,菜单会切换为打开并保持打开状态,直到您再次单击其中一个链接或用户名称切换为关闭。
我想用CSS和HTML实现粘性菜单的完全相同的效果。我可以使用CSS3功能,但如果可以在不依赖CSS3的情况下实现这一点,那就更好了。
到目前为止我尝试了什么
我可以创建基本的导航菜单,下拉列表使用纯CSS和HTML,但只使用:hover pseudoclass。我尝试了:有效的伪类,但不幸的是它没有“坚持”并保持开放。
这种“粘性”下拉效果是否可以在不依赖javascript的情况下实现?如果不依赖于javascript是不可能的,我应该如何处理它以使它降级优雅?
答案 0 :(得分:4)
我要离开这里,因为我无法从工作中访问Twitter。如果我没记错的话,在主页面上使用相同的脚本来登录。它会创建一个小弹出窗口,即使在移动鼠标后也会停留在那里。
如果这就是你所说的话,你就无法用CSS实现这一目标;它是一种样式语言,而不是脚本语言。一旦该事件停止,:hover/:active
伪类样式将全部取消应用。
涉及Javascript的替代方案是使按钮成为引导您进入实际页面的链接。然后绑定它的onclick
以弹出一个绝对隐藏的div
return false
默认隐藏(div
在onclick中以防止跟踪链接)。这个{{1}}在你想隐藏它的任何条件下都不会被隐藏,并且它开始隐藏,所以如果他们没有Javascript,他们就不会知道他们错过了什么。
答案 1 :(得分:1)
使用pseudo班级:focus
代替:active
。您可能还需要在HTML中使用tabindex=""
来使元素接受焦点。
但是,iOS触摸屏似乎无法识别tabindex=""
。
答案 2 :(得分:0)
可以在CSS的帮助下使用标签并结合输入[type =“checkbox”] 和:checked 伪选择器来实现商店状态
上的示例