- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以创建适用于桌面和触摸屏浏览器的漂亮的多级菜单?没有任何js。由于触摸屏没有 :hover
属性,因此为这两种变体创建一个样式表让我发疯。在桌面上的行为应该是:悬停 - 打开子菜单,点击 - 转到链接。在 iPad 上:第一次点击 - 打开子菜单,第二次点击 - 转到链接。
感谢任何建议。
最佳答案
使用纯 CSS,目标 :hover
和 :active
来完成你想要的。
在您的 iPhone/iPad 上试用此网站:www.thepricklepatch.com。它并不完美,但这就是我为创造我想要的效果所做的。
编辑:抱歉,我花了这么长时间才回复 - 这个周末正在露营,不允许使用电脑! :) 这是该站点的 CSS,经过精简以获得您想要的部分。我已经为你添加了评论。这里有我用来设置菜单样式的空规则,我删除了所有处理纯外观并专注于元素定位的 CSS。
/* NAVIGATION ************************************************************************/
nav > ul > li
{
display: inline-block; /* sets elems to be inline but retain block-like properties, you may not need this */
position: relative; /* resets the positioning context */
cursor: pointer; /* sets the mouse cursor to look like a link for menus that do not have an A element */
}
nav > ul > li:hover
{
position: relative; /* reset positioning context */
z-index: 2000; /* bring element top-most */
}
nav > ul > li:hover,
nav > ul > li:hover > a /* HOVERED list elems and links in the main menu */
{
}
nav > ul > li,
nav > ul > li > a /* list elems and links in the menu */
{
}
nav > ul > li > div.submenu /* only first level of submenus */
{
display: none; /* hide the submenus by default */
}
nav > ul > li:hover > div.submenu /* Only HOVERED OVER first level of submenus */
{
display: block; /* display the submenus when the LI is hovered over */
position: absolute;
top: 100%; /* set to the bottom of the menu */
left: -1px; /* move left 1px from left of LI element */
z-index: 1000; /* top most */
}
nav > ul div.submenu /* All submenus */
{
}
nav > ul div.submenu > ul /* All lists of links in a submenu */
{
background: #fff;
padding: 2px;
border: solid 2px #f89d57;
}
nav > ul div.submenu > ul > li, /* All list elements in any submenu */
nav > ul div.submenu > ul > li > a /* All list elements containing links in any submenu */
{
}
nav > ul div.submenu > ul > li
{
}
nav > ul div.submenu > ul > li > a
{
display: block;
}
nav > ul div.submenu > ul > li,
nav > ul div.submenu > ul > li > a /* All links in any submenu */
{
}
nav > ul div.submenu > ul > li:hover /* All HOVERED li containing links in any submenu */
{
}
nav > ul div.submenu > ul > li:hover > a /* All links HOVERED in any submenu */
{
}
nav div.submenu > ul > li > div.submenu,
nav div.submenu > ul > li > a + div.submenu /* 2nd level of submenus and on */
{
display: none; /* Hide by default submenus */
}
nav div.submenu > ul > li:hover div.submenu,
nav div.submenu > ul > li:hover a + div.submenu /* 2nd level submenus and on (if even used) */
{
display: block; /* Show submenus when parent hovered */
position: absolute;
top: -2px;
left: 75%;
z-index: 1000;
}
nav li:hover
{
position: relative;
z-index: 2000;
}
作为引用,这是我使用的 HTML:
<nav>
<ul>
<li><a href="/index.aspx">Home</a></li>
<li><a href="/shop-by.aspx">Shop By…</a>
<div class="submenu">
<ul>
<li>Shop By Product
<div class="submenu">
<ul>
<li><a href="/products.aspx?category=furniture">Furniture</a></li><li><a href="/products.aspx?category=bed-bath">Bed & Bath</a></li><li><a href="/products.aspx?category=decor-accents">Décor Accents</a></li><li><a href="/products.aspx?category=tabletops">Tabletops</a></li><li><a href="/products.aspx?category=rugs-curtains">Rugs & Curtains</a></li><li><a href="/products.aspx?category=home-office">Home Office</a></li>
</ul>
</div>
</li>
<li>Shop By Room
<div class="submenu">
<ul>
<li><a href="/products.aspx?room=bathroom">Bathroom</a></li><li><a href="/products.aspx?room=bedroom">Bedroom</a></li><li><a href="/products.aspx?room=dining">Dining</a></li><li><a href="/products.aspx?room=kitchen">Kitchen</a></li><li><a href="/products.aspx?room=living-room">Living Room</a></li><li><a href="/products.aspx?room=media-office">Media & Office</a></li>
</ul>
</div>
</li>
<li>Shop By Color
<div class="submenu">
<ul>
<li><a href="/products.aspx?color=black">Black</a></li><li><a href="/products.aspx?color=blue">Blue</a></li><li><a href="/products.aspx?color=brown">Brown</a></li><li><a href="/products.aspx?color=green">Green</a></li><li><a href="/products.aspx?color=orange">Orange</a></li><li><a href="/products.aspx?color=purple">Purple</a></li><li><a href="/products.aspx?color=red">Red</a></li><li><a href="/products.aspx?color=white">White</a></li><li><a href="/products.aspx?color=yellow">Yellow</a></li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li><a href="/services.aspx">Services</a>
<div class="submenu">
<ul>
<li><a href="/">Home Consultation</a></li>
<li><a href="/">Interior Design</a></li>
<li><a href="/">Floral Design</a></li>
<li><a href="/">Event Planning</a></li>
</ul>
</div>
</li>
<li><a href="/galleries.aspx">Gallery</a>
<div class="submenu">
<ul>
<li><a href="/">Rooms</a></li>
<li><a href="/">Floral</a></li>
<li><a href="/">Christmas</a></li>
<li><a href="/">Other Seasons</a></li>
</ul>
</div>
</li>
<li><a href="/promotions.aspx">Promotions</a>
<div class="submenu">
<ul>
<li><a href="/">Semi-Annual</a></li>
<li><a href="/">Sale</a></li>
<li><a href="/">Sale by Season</a></li>
</ul>
</div>
</li>
<li><a href="/contact-us.aspx">Contact Us</a>
<div class="submenu">
<ul>
<li><a href="/">Contact Info</a></li>
<li><a href="/">Comments</a></li>
<li><a href="/">Inquiries</a></li>
</ul>
</div>
</li>
<li class="navWishList"><a href="/wish-list.aspx">Wish List</a></li>
</ul>
</nav>
关于css - 用于触摸屏的纯 CSS 分层菜单(iPad),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10247336/
我这里有这样的 slider :https://jsfiddle.net/args91L4/我如何让它在触摸屏上工作,更准确地说,在 vanilla js 或纯 jquery 上没有第三方插件的方式是
我正在使用 HP 触摸屏台式计算机开发一个简单的网站。我想防止用户同时用八个手指“捣碎”屏幕点击。 jQuery 有没有办法一次只允许注册一个触摸事件?这样,当第一个手指点击屏幕时,即注册了该手指,并
我有一个 Web 应用程序,需要有在自助服务终端样式、仅触摸屏环境中使用的选项。我想知道是否有任何我们可以使用的基于浏览器的好键盘。可能是基于 javascript 或 jquery 的东西。基本上,
我有一个 div,它在桌面浏览器上滚动得很好,但在带有触摸屏的移动设备上,滚动不起作用。 这是一个stripped down jsFiddle带有一些实际代码。滚动在您的移动浏览器中运行良好,但请相信
我有一台装有 Windows 7 的触摸屏电脑,我想禁用多点触控手势: 但即使我禁用它并应用更改,当我重新打开窗口时,该选项也会再次启用... 知道在哪里可以永久禁用它吗? (也许在注册表中...)
在移动设备(触摸屏)上缩放后,Highmap 数据点单击事件中断有什么建议吗? 最佳答案 tooltip.pointFormatter 与 useHTML 结合使用仍然期望一个字符串作为返回值,因此应
我正在用Java(使用Swing)为自动机开发一个基于触摸屏的应用程序,例如this 。由于操作系统会处理所有触摸事件,因此我只需开发一个桌面应用程序并在触摸设备上使用它即可。 如果有人可以帮助我,我
我会尽可能清楚地描述我的问题。我正在尝试让触摸屏设备与 Android 一起工作。该设备是一个 USB 设备,我让它在各种操作系统(Windows、Mac OS X、Ubuntu)中正常工作。在 An
我们有一个在 Win 7 上运行的 WPF 应用程序。在 Win 7 中启用触摸手势,当滚动 ListView 时,应用程序在到达列表末尾时在屏幕上“耸耸肩”。 这也可以在 Internet Expl
我需要在我的 Android 设备上禁用和启用触摸屏。我试过了 adb shell su rm -rf /dev/input/event2 和 adb shell su rm -rf /dev/inp
我有一台运行 Windows 10 的 PiPo x9(触摸屏)。Google Chrome 已加载,可以正确查看网页。通过 CefBrowser 加载的同一页面对鼠标事件做出奇怪的响应。我使用的是
我有一台运行 Windows 10 的 PiPo x9(触摸屏)。Google Chrome 已加载,可以正确查看网页。通过 CefBrowser 加载的同一页面对鼠标事件做出奇怪的响应。我使用的是
希望有人能帮我解决这个问题,为此我苦苦挣扎了一会儿。我需要为触摸设备上的最终用户提供“单击”下拉菜单以显示子菜单项的能力。就桌面体验而言,这显然是一种常见的 UX 构造,但对于移动或触摸设备而言,它并
我在这个网站上有一个菜单,它在标准 Windows 8.1 PC 上的 chrome 上运行正常,但在带有触摸屏的 Windows 8.1 笔记本电脑上的 chrome 上查看时出现奇怪的问题。 子菜
我正在用 Java 开发一个 Swing 应用程序。该程序将在专用的 Windows 7 触摸屏机器上运行,据我所知,在正常操作下,该程序应该是唯一在这些机器上运行的东西。 我注意到 Windows
目前我正在 STM32f4 板上开发 USB 触摸屏 HID 描述符(自定义 HID 描述符)。为此,我为单个联系人标识符(单手指触摸)实现了一个 HID 描述符,它对我有用。但是,我的要求是多点触摸
大家早上好。 我买了一个集成了电阻式触摸屏的液晶嵌入式显示器。TS 可通过 USB 连接。 我已将其连接到运行 Android 4.0.3 的设备,并且触摸被正确识别为外部 HID。问题:点击(按下)
我想知道是否可以在 microsoft Surface 触摸屏(例如 Samsung SUR40 不是 Surface 平板电脑)又名 pixelsense ? 我在互联网上搜索了一整天,但找不到任何
最近我正在开发基于谷歌地图的网站。它适用于大多数设备,但是当我在 MS Surface 触摸屏上安装 Chrome 浏览器后,我无法用手指捏合和缩放谷歌地图。但我可以使用 Chrome 浏览器在map
我是一名优秀的程序员,十分优秀!