2012-12-17 3 views
3

J'ai essayé les différentes combinaisons de width & device-width mais sur l'iPhone en mode paysage ce code ne fait jamais tourner le fond en rouge;3 requêtes média pour iphone portrait, paysage et ipad portrait

Je rencontre un problème lorsque j'ai plus d'une requête média. Voir ce JSfiddle example l'arrière-plan div est jamais vert sauf si vous supprimez le dernier média requête

Voilà ce que je voudrais 3 différentes questions des médias qui ciblent:

  1. les smartphones et les tablettes (portrait uniquement). Ce sera là où j'ai tous mes styles génériques pour la mise en page sensibles
  2. largeur: 320px - 479px - cela s'appliquera aux petits écrans, tels que l'iPhone en mode portrait que
  3. largeur: 480px - 640px - ceci sera appliqué aux écrans plus grands tels que l'iphone dans le paysage et l'ipad dans le portrait. Pas ipad dans le paysage.

RemarqueCet est un e-mail HTML de sorte que son pas possible d'utiliser JS.

@media only screen and (max-width: 640px) { 
    body { padding: 10px !important } 
} 
/* Small screen */ 
@media only screen and (min-device-width: 320px) and (max-device-width: 479px) { 
    body { background: blue !important } 
} 
/* iPhone landscape and iPad portrait */ 
@media only screen and (max-device-width: 480px) and (max-device-width: 640px) { 
    body { 
     background: red !important 
     -webkit-text-size-adjust:none; 
    } 
} 

Référence: http://css-tricks.com/snippets/css/media-queries-for-standard-devices/

Répondre

19

votre propre tentative modifiée

@media only screen and (max-width: 640px) and (orientation: portrait) { 
    body { padding: 10px !important } 
} 

/* Small screen */ 
@media only screen and (min-device-width: 320px) and (max-device-width: 479px) and (orientation: portrait) { 
    body { background: blue !important } 
} 

/* iPhone landscape and iPad portrait */ 
@media only screen and (max-device-width: 480px) and (orientation: landscape), 
@media only screen and (max-device-width: 640px) and (orientation: portrait) { 
    body { 
     background: red !important 
     -webkit-text-size-adjust:none; 
    } 
} 
+0

Notez que la virgule ',' fonctionne comme 'OR' et que' and' fonctionne comme 'and' .Vous pouvez donc toujours combiner des requêtes média. –

+1

écran @media seul et (max-périphérique-largeur: 480px) et (orientation: paysage) - ne fonctionne pas pour iphone paysage, n'étant pas reconnu – drogon

+0

salut, je suis sur ios 6, iphone 4, la requête des médias pour "iPhone paysage" ne fonctionne pas pour moi, le reste fonctionne – drogon

1

Jetez un oeil à cette ressource, vous donnera les demandes des médias pour tout à peu près http://arcsec.ca/media-query-builder/, vous devez être spécifieront un aswell min largeur. aussi moins de! important, sale :)

dans votre cas

@media only all and (min-device-width: 320px) and (max-device-width: 480px) { 
/* insert styles here */ 
} 
+0

Merci bien que j'ai jeté un coup d'oeil sur le lien, mais tous les sélections sont juste confus. Je dois utiliser le '! Important' car c'est pour un email HTML et j'ai besoin de remplacer les styles en ligne. –

3

requêtes des médias prennent également en charge l'orientation de l'appareil. Vous devriez essayer

@media screen and (orientation:portrait) { 
    /* Portrait styles */ 
} 

@media screen and (orientation:landscape) { 
    /* Landscape styles */ 
} 

Vous pouvez également les combiner avec une largeur comme tant

@media screen and (max-device-width : 320px) and (orientation:portrait) { 

} 
+0

La requête de média d'orientation ne fonctionne pas sur iPad & iPad mini :(... –

1

emails réactifs peut être difficile car il y a tellement de clients e-mail là-bas, et le soutien peut être limité requêtes de médias. Vous voudrez peut-être simplement faire en sorte que vos divs soient fluides avec des pourcentages, de sorte qu'ils évoluent, plutôt que des requêtes média. Les gens à zurb ont quelques bons modèles qui peuvent aider aussi. http://www.zurb.com/playground/responsive-email-templates

Espérons que ça aide.

0

j'ai essayé cela en utilisant la solution de Om dans une diff. comment cela a fonctionné pour moi, j'espère que cela aide quelqu'un

@media only screen and (max-device-width:1024px) and (orientation: portrait)  { 
    /*style*/  
    } 
@media only screen and (max-device-width: 1024px) and (orientation: landscape) { 
    /*style*/ 
} 
+0

c'est mon répondeur complet: - écran @ médias seulement et (max-périphérique-largeur: 1024px) et (orientation: portrait) { /* style */ } } @media uniquement l'écran et (max-device-width: 1024px) et (orientation: paysage) { /* Style * /} – sahil

+0

pls me aider à modifier mon answere !! – sahil

Questions connexes