css - 智能手机上的 HTML 菜单行为

标签 css html responsive-design

目前正在尝试使网站响应智能手机和平板电脑。我在网站的菜单上遇到了一些麻烦。菜单基本上是一个像这样的无序列表:

<ul class="navigation">
    <li><a href="page1.html">Page1</a></li>
    <li><a href="page2.html">Page2</a></li>
    <li>
        <a href="page3.html">Page3</a>
        <!-- Dropdown menu -->
        <ul class="subnav">
            <li><a href="page4.html">Page4</a></li>
        </ul>
    </li>      
</ul>

内部无序列表是一个下拉菜单,当用户将鼠标悬停在 page3.html 链接上时出现。

在手机和平​​板电脑上,我希望菜单像 Accordion 一样,所以当用户触摸 page3.html 链接时,subnav 列表出现并插入另一个列表项下来。我通过简单地将下拉列表设置为固定位置而不是 position:absolute; 使其在桌面上工作但是,在移动设备和平板电脑上,触摸 page3.html仍将用作链接,因此用户当然会被重定向到 page3.html 而不是触发 subnav 列表。

有什么方法可以在用户第一次触摸链接时不触发链接而触发子导航列表? :-) 我正在尝试为此寻求一个仅使用 CSS 的解决方案,但如果需要 JS,我会很乐意使用它。

提前致谢!

最佳答案

有一个用 jQuery 编写的 Wordpress 插件 ( Black Studio Touch Dropdown Menu ) 几乎可以满足您的需求。可以看看源码here并修改为独立于 Wordpress(如果这不是您正在使用的)。它主要检查设备是否是触摸屏设备,如果是,当您单击下拉菜单的父项时,它会展开它而不是单击链接。下一次,它会真正点击链接。

关于css - 智能手机上的 HTML 菜单行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14589723/

相关文章:

angular - 参数 flex-grow 在 fxFlex 指令中如何工作?

css - 使用 DIV 堆叠的响应式 Web 布局的更好工作流程

html - flexbox 模型中的自动内边距

html - 我的导航栏根本没有响应

html - HTML5音频控件在Android上不起作用

css - 在 html5 Canvas 上添加 ul li 图像

html - flexbox 全宽表格

javascript - 在 select onchange 上更改样式并停止返回到原始样式

javascript - 如何在不打开新窗口的情况下使用 JavaScript 在 FULLSCREEN 中打开主页?

javascript - 添加的 html 元素已添加到 DOM 但不可见