javascript - 如何在纯 CSS 中创建 "sticky"下拉菜单?

标签 javascript html css drop-down-menu

我想要达到的效果:

在 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/

相关文章:

html - 通过 Peoplecode 从消息目录中提取 html 文本

html - 如何使背景元素居中

javascript - 如何在单页应用程序中管理与 IndexedDb 的连接

javascript - 如果没有 'new',则无法调用类构造函数 PolymerElement

javascript - TinyMCE:事件初始化后如何绑定(bind)

javascript - React JS 一种数据流困惑的方式

html - A.nnotate.com背后使用了什么技术?

javascript - 在节点的子树中查找 DOM 节点?

jquery - 我怎样才能在让文本左对齐的同时将引用内容 ID 居中

javascript - 单击 jQuery addClass 时的表行不适用于 Bootstrap