2010-04-20 21 views
20

J'essaie d'utiliser une règle de support pour cibler CSS sur iPad uniquement. Je veux exclure iPhone/iPod et les navigateurs de bureau. Je voudrais également exclure d'autres appareils mobiles si possible.Comment cibler CSS pour iPad mais exclure Safari 4 desktop en utilisant une requête média?

Je l'ai utilisé

<style type="text/css" media="only screen and (min-device-width: 768px) and (max-device-width: 1024px)"> 

mais juste découvert que bureau Safari 4 le lit. J'ai essayé avec des variations « 481px » au lieu de « 768px » et un autre qui ajoute une orientation que:

<style type="text/css" media="only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait)"> 

mais pas de chance. (Plus tard nous reniflerons des chaînes d'user-agent pour iPad, mais pour l'instant cette solution ne fonctionnera pas.)

Merci!

Mise à jour: il semble que Safari de bureau utilise la largeur et la hauteur de l'écran pour le moment et se donne une orientation de portrait ou de paysage sur cette base. Il ne semble pas que les largeurs et les hauteurs excluent les navigateurs de bureau (à moins que je ne manque quelque chose).

http://mislav.uniqpath.com/2010/04/targeted-css/

+0

Cet article peut vous aider: http://www.sitepoint.com/blogs/2010/04/20/identify-apple-iphone-ipod-ipad-visitors/ –

Répondre

42
media="only screen and (device-width: 768px)" 

Merci à Mislav Marohnic pour la réponse!

Cela fonctionne pour l'iPad dans les deux sens et semble exclure Safari de bureau.

Lorsque je testais (min-device-width: 768px) and (max-device-width: 1024px) Je pouvais voir Safari 4 en utilisant les styles ou en les ignorant comme j'ai élargi ou rétréci la fenêtre. Lors du test (device-width: 768px) j'ai essayé de faire le navigateur Safari de bureau exactement 786px de large, mais je ne l'ai jamais eu pour voir les styles.

+0

C'est un truc très intelligent. Ne pas oublier d'accepter une réponse. (Pouvez-vous accepter les vôtres?) –

+4

J'ai trouvé un cas où le CSS est ignoré quand la page est dans le webview d'une application. Ce pourrait être un cas limite ou non, je ne sais pas. Le webview avait une taille codée en dur et donnait au useragent de l'iPhone même si c'était un iPad. –

4

utiliser PHP pour le faire. J'isole la plateforme de la chaîne USER_AGENT. Ensuite, je dois seulement utiliser un if($plateform == 'iPad') {.....} C'est aussi simple que ça!

+2

Peut être utile pour poster tout votre code. –

+1

Je suis d'accord, en vérifiant si l'agent du navigateur contient "ipad" du côté serveur, puis en incluant la feuille de style spécifiée est le moyen le plus précis de cibler un iPad. La solution marquée comme réponse affectera tous les appareils. – Americus