Нет способа сделать это, не прибегая к Javascript, в настоящее время.
Как сказал @easwee, Modernizr - уважаемая библиотека JS, которая фокусируется на обнаружении функций. Вы можете использовать его touch
тест для вашего случая использования.
Если вам не нужны все навороты Модернизра, вы можете сделать следующее:
A) Загрузите следующий JS как можно раньше в тег <body>
:
<script type="text/javascript">
if( !!window.TouchEvent ) body.className += " touch-enabled ";
</script>
Б) Напишите свой CSS. Поскольку Gecko использует медиазапрос для информирования о доступности сенсорного экрана, вам придется дублировать CSS, специфичный для сенсорного экрана, например:
BODY.touch-enabled DIV.foo
{
/* touch-specific CSS */
}
@media screen and (-moz-touch-enabled)
{
DIV.foo
{
/* touch-specific CSS */
}
}
Если код для каждого селектора идентичен в обоих случаях, GZIP должен оптимизировать некоторые дубликаты. (Надеюсь, вы используете сжатие.)