我已经添加了一个带有 HTML 按钮的 div:
$('.nav').append('<button class="restart">Restart</button>');
是否有方法可以在使用触摸屏设备浏览时忽略 hover 属性?
我最近遇到了这个问题,iOS似乎把悬停伪类视为额外的点击,因此需要点击两次才能链接等。
如果您使用modernizr,可以通过应用于html标记的.no-touch类来应用:hover伪类。
所以:
html a { color:#222; }
html.no-touch a:hover { color:#111; }
不是理想的解决方案,但感谢@dualed的开端!
@media screen and (min-device-width:768px) and (max-device-width:1024px) /*catch touch screen devices */
{
button.restart:hover
{
/* replicate 'up' state of element */
}
}
您可以在CSS规则中指定媒体类型。
@media handheld {
button.restart:hover {
/* undo hover styling */
}
}
请注意,手持设备不一定具有触摸屏。
(顺便说一下,这是 CSS 而不是 jQuery)
也许这不是你想要的,但你可以根据媒体类型指定不同的CSS样式表:
<link rel="stylesheet" media="screen,projection,tv" href="main.css" type="text/css">
<link rel="stylesheet" media="print" href="print.css" type="text/css">
<link rel="stylesheet" media="handheld" href="smallscreen.css" type="text/css">
一个好用且简单的方法是使用Modernizr。
当 Modernizr 运行时,它会为每个检测到的特性在 HTML 标签的 class 属性中添加一个条目,如果浏览器不支持该特性,则在特性前加上 no- 前缀。
现在将以下行添加到您的 CSS 样式表中
.touch *:hover {
display: none;
}
可以自由地使用:hover,无论您想使用多少次。当您的网站在触摸屏上查看时,所有元素的悬停效果都将被禁用。
type="button"
?如果没有,默认情况下按钮将变成提交按钮。 - Patrick James McDougle