2010-07-30 13 views

Respuesta

1

Chrome es otro navegador que trató de implementar un selector similar, pero por desgracia, fue apartado por ahora.

Modernizr podría ser una herramienta de detección interesante ya que también puede detectar eventos táctiles.

http://www.modernizr.com/docs/#touch

5

No hay manera de lograr esto sin recurrir a Javascript, en la actualidad.

Como @easwee dijo, Modernizr es una biblioteca JS muy bien considerada que se centra en la detección de características. Puede usar su prueba touch para su caso de uso.

Si usted no necesita todas las campanas y silbatos de Modernizr, puede hacer lo siguiente:

A) cargar los siguientes JS tan temprano en su etiqueta <body> como puedas:

<script type="text/javascript"> 
if(!!window.TouchEvent) body.className += " touch-enabled "; 
</script> 

B) Escribe tu CSS. Desde Gecko utiliza una consulta de medios para informarle de la disponibilidad táctil, que tendrá que engañar a la CSS toque específico, así:

BODY.touch-enabled DIV.foo 
{ 
    /* touch-specific CSS */ 
} 

@media screen and (-moz-touch-enabled) 
{ 
DIV.foo 
{ 
    /* touch-specific CSS */ 
} 

} 

Si el código por-selector es idéntica en ambas circunstancias, debe GZIP optimice lejos de la duplicación. (Está utilizando la compresión, espero.)

2

En la respuesta de Ian Wessman la prueba !!window.TouchEvent funciona incorrectamente. En el escritorio actual, Chrome (23.0.1271.52, Linux) window.TouchEvent es una función, por lo que el código de Ian considera que el navegador está habilitado.

Si desea un código corto, probablemente sea mejor copiar y pegar el relevant code from Modernizr.

+0

https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touchevents.js – eimaj

Cuestiones relacionadas