1

是否可以仅为移动设备禁用悬停和活动伪类?

我找到了这个

html.touch {
  /* Touch is enabled */
}

html.no-touch {
  /* Touch is disabled */
}

这看起来很整洁。但我无法让它工作。

代码如下,你可以在这里测试一下:http: //jsfiddle.net/5qb2J/

<html>
<head>
<style type="text/css">
#button{background:url("http://www.webstuffshare.com/wp-content/uploads/2010/03/button3.jpg") no-repeat 0 0;display:block;width:201px;height:67px;}
#button:hover{background-position:0px -67px;}
#button:active{background-position:0px -134px;}
#button span{position:absolute;top:-99999999em;}
</style>    
</head>
<body>
<a id="button" href="#"><span>this is foo</span></a>
</body>
</html>

编辑

我现在正在使用这个

<?php // detect mobile
$Mobile = FALSE;
if
(strstr(strtolower($_SERVER["HTTP_USER_AGENT"]), "android") ||
strstr(strtolower($_SERVER["HTTP_USER_AGENT"]), "webos") ||
strstr(strtolower($_SERVER["HTTP_USER_AGENT"]), "iphone") ||
strstr(strtolower($_SERVER["HTTP_USER_AGENT"]), "ipod") ||
strstr(strtolower($_SERVER["HTTP_USER_AGENT"]), "ipad") ||
strstr(strtolower($_SERVER["HTTP_USER_AGENT"]), "zune"))
{
$Mobile = TRUE;
}
?>

<?php
If ($Mobile == FALSE)
{
echo <<<escapethis
some html here
escapethis;
}
?>

使用单词 escapethis 的行不能以空格开头

4

1 回答 1

2

听起来像html.touch并且html.no-touch正在与诸如modernizr之类的特征检测库一起使用,它将进行各种特征测试并html根据这些测试的结果向元素添加类。

在这种情况下,你会想要做这样的事情:

html.no-touch #ElementThatShouldHaveNoHoverEventOnTouchDevices:hover{
    //do your stuff
}

<div id="ElementThatShouldHaveNoHoverEventOnTouchDevices">
    hello
</div>
于 2012-05-18T20:59:14.357 回答