html - 如何创建一个 DIV,它在 :hover (for desktop) and on tap (for touch devices) using CSS? 上下拉另一个 DIV

标签 html css hover touch tap

情况

我想创建一个 <div>这会触发另一个 <div>执行 visibility:visible从被隐藏在:hover .我使用此 CSS 代码完成了此操作:

#MAIN_NAVIGATION { /* Styling goes here */ }

#NAVIGATION_POP_DROP {
visibility: hidden;}

#MAIN_NAVIGATION:hover > #NAVIGATION_POP_DROP {
visibility: visible;}

#MAIN_NAVIGATION:hover { /* Changes original styling to change BG color */}

#MAIN_NAVIGATION是用于接受悬停的 div 的 div id。 #NAVIGATION_POP_DROP是鼠标悬停在 #MAIN_NAVIGATION 上时显示的 div

问题

上面的 CSS 使用台式机/笔记本电脑工作。我已经在寻找“悬停”的解决方案,以便在触摸设备上也能正常工作。问题是当我点击 #MAIN_NAVIGATION , #NAVIGATION_POP_DROP即使我点击另一个元素也不会关闭。触发 #NAVIGATION_POP_DROP 的唯一操作消失是当我点击另一个带有 #MAIN_NAVIGATION 的 div 时编号。

问题

在触摸设备上,如何隐藏 #NAVIGATION_POP_DROP再次划分: (1) 点击另一个元素, (2) 滚动屏幕,或 (3) 敲击相同的#MAIN_NAVIGATION分区?

注意:#MAIN_NAVIGATION div 元素不包含链接。

我要的效果类似于Mashable的菜单.

我希望有人能帮助我。我是使用 CSS 的新手,我对触摸设备的设计了解不多。谢谢。

最佳答案

我建议使用伪选择器 :after,像这样:

#MAIN_NAVIGATION:hover:after {
visibility: visible; content:'the content of your new div'; /* add any style here*/}

查看我的示例:

http://jsfiddle.net/wNrdp/

关于html - 如何创建一个 DIV,它在 :hover (for desktop) and on tap (for touch devices) using CSS? 上下拉另一个 DIV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16984720/

相关文章:

html - 如何在浏览器中设置默认打印选项

php - 自动完成 : Failed to load resource: Preflight response is not successful

html - 将鼠标悬停在 X 或 Y 上以仅更改 Y 的颜色

CSS 悬停在 li child 上

css - 直接在伪类中设置过渡属性是不好的做法吗?

html - 如何在 contentPlaceholder 中引用具有特定 ID 的按钮

html - 仅使用 CSS 删除单选按钮文本

html - 如何让我的第二层导航出现在悬停时?

javascript - 关键帧动画绝对定位按钮

html - 如何更改 branch.io 中深度 View html 页面的样式? (创建自定义样式)