我想要达到的效果:
在 Twitter 的新设计中,他们为帐户设置区域实现了一个“粘性”下拉菜单。
基本上,当您在顶部的黑色全局导航栏中单击您的用户名时,一个菜单会打开并保持打开状态,直到您再次单击其中一个链接或您的用户名名称将其关闭。
我想只用 CSS 和 HTML 实现与粘性菜单完全相同的效果。我可以使用 CSS3 功能,但如果这可以在不依赖 CSS3 的情况下实现,那就更好了。
到目前为止我尝试了什么
我可以使用纯 CSS 和 HTML 创建带下拉菜单的基本导航菜单,但只能使用 :hover 伪类。我尝试了 :active 伪类,但不幸的是它没有“粘住”并保持打开状态。
如果不依赖 javascript,这种“粘性”下拉效果是否可行?如果不依赖 javascript 是不可能的,我应该如何处理它才能正常降级?
最佳答案
由于我无法在工作中访问 Twitter,所以我在这里忘记了内存。如果我没记错的话,主页上使用相同的脚本进行登录。它会创建一个弹出式小窗口,即使在移动鼠标后该窗口仍保留在那里。
如果这就是您所说的,那么仅使用 CSS 是无法实现的;它是一种样式语言,而不是脚本语言。 :hover/:active
伪类样式将在该事件停止后立即全部取消应用。
涉及 Javascript 的替代方法是使按钮成为指向实际页面的链接。然后绑定(bind)它的 onclick
以弹出一个默认隐藏的绝对定位的 div
(return false
onclick 以防止点击链接)。这个 div
不会隐藏,直到你想隐藏它的任何条件,它开始时是隐藏的,所以如果他们没有 Javascript,他们将不知道他们丢失了什么。
关于javascript - 如何在纯 CSS 中创建 "sticky"下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3817528/