web-dev-qa-db-fra.com

Requête de média CSS pour cibler iPad et iPad uniquement?

Bonjour, je travaille avec plusieurs tablettes, iPad, Galaxy Tab, Acer Iconia, LG 3D Pad, etc.).

  • iPad - 1024 x 768
  • Tablette LG - 1280 x 768
  • Galaxy Tab - 1280 x 800

Je souhaite cibler l'iPad uniquement à l'aide d'une requête multimédia CSS3. Depuis, la largeur de l'appareil LG et l'iPad est identique à 768 pixels - j'ai des difficultés à séparer chaque appareil.

J'ai essayé de suivre pour séparer, mais ne semble pas fonctionner:

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation : portrait) /* applied to lg also */
@media only screen and (min-resolution: 132dpi) and (max-device-width: 1024px) and (orientation : portrait) /* applies to lg also */
@media only screen and (device-aspect-ratio: 1024/768) and (orientation : portrait) /* does not work on iPad or LG */

Je ne connais pas les options -webkit-device-pixel-ratio et autres -webkit * et leurs valeurs pour cibler l'iPad. Je ne veux pas utiliser JavaScript pour les styles, des idées?

64
Hossain Khan

Enfin trouvé une solution de: Détecter différentes plates-formes de périphériques à l'aide de CSS

<link rel="stylesheet" media="all and (device-width: 768px) and (device-height: 1024px) and (orientation:portrait)" href="ipad-portrait.css" />
<link rel="stylesheet" media="all and (device-width: 768px) and (device-height: 1024px) and (orientation:landscape)" href="ipad-landscape.css" />

Pour réduire les appels HTTP, cela peut également être utilisé dans votre fichier CSS commun existant:

@media all and (device-width: 768px) and (device-height: 1024px) and (orientation:portrait) {
  .ipad-portrait { color: red; } /* your css rules for ipad portrait */
}
@media all and (device-width: 1024px) and (device-height: 768px) and (orientation:landscape) {
  .ipad-landscape { color: blue; } /* your css rules for ipad landscape */
}

J'espère que cela t'aides.

Autres références:

124
Hossain Khan

Je suis un peu en retard pour répondre à cela, mais rien de ce qui précède n'a fonctionné pour moi.

C'est ce qui a fonctionné pour moi

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
    //your styles here
   }
5
Baig

Eh bien tout à fait la même question et il y a aussi une réponse =)

http://css-tricks.com/forums/discussion/12708/target-ipad-ipad-only./p1

@media only screen and (device-width: 768px) ...
@media only screen and (max-device-width: 1024px) ...

Je ne peux pas le tester actuellement, merci de le tester =)

Aussi trouvé un peu plus:

http://perishablepress.com/press/2010/10/20/target-iphone-and-ipad-with-css3-media-queries/

Ou vous vérifiez le navigateur avec du javascript et générez/ajoutez un fichier css avec javascript

3
Daniel Ruf

Vous devez cibler le périphérique à l'aide de son agent utilisateur, à l'aide d'un script. L'agent utilisateur pour l'iPad est:

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10
3
Beatriz Oliveira
<html>
<head>
    <title>orientation and device detection in css3</title>

    <link rel="stylesheet" media="all and (max-device-width: 480px) and (orientation:portrait)" href="iphone-portrait.css" />
    <link rel="stylesheet" media="all and (max-device-width: 480px) and (orientation:landscape)" href="iphone-landscape.css" />
    <link rel="stylesheet" media="all and (device-width: 768px) and (device-height: 1024px) and (orientation:portrait)" href="ipad-portrait.css" />
    <link rel="stylesheet" media="all and (device-width: 768px) and (device-height: 1024px) and (orientation:landscape)" href="ipad-landscape.css" />
    <link rel="stylesheet" media="all and (device-width: 800px) and (device-height: 1184px) and (orientation:portrait)" href="htcdesire-portrait.css" />
    <link rel="stylesheet" media="all and (device-width: 800px) and (device-height: 390px) and (orientation:landscape)" href="htcdesire-landscape.css" />
    <link rel="stylesheet" media="all and (min-device-width: 1025px)" href="desktop.css" />

</head>
<body>
    <div id="iphonelandscape">iphone landscape</div>
    <div id="iphoneportrait">iphone portrait</div>
    <div id="ipadlandscape">ipad landscape</div>
    <div id="ipadportrait">ipad portrait</div>
    <div id="htcdesirelandscape">htc desire landscape</div>
    <div id="htcdesireportrait">htc desire portrait</div>
    <div id="desktop">desktop</div>
    <script type="text/javascript">
        function res() { document.write(screen.width + ', ' + screen.height); }
        res();
    </script>
</body>
</html>
2
Daniel Raja Singh

Ces jours-ci, vous pouvez utiliser une fonctionnalité Requêtes sur les médias de niveau 4 pour vérifier si le périphérique dispose de la capacité de survoler des éléments .

@media (hover: hover) { ... }

Étant donné que l'ipad n'a pas d'état de survol, vous pouvez cibler efficacement des périphériques tactiles tels que l'ipad.

0
kevinius