301 votes

@Media min-width & max-width

J'ai cette configuration @media

HTML :

 <head>
  <meta name="viewport" content="width=device-width, user-scalable=no" />
</head>
 

CSS :

 @media screen and (min-width: 769px) {
    /* STYLES HERE */
}

@media screen and (min-device-width: 481px) and (max-device-width: 768px) { 
    /* STYLES HERE */
}

@media only screen and (max-device-width: 480px) {
    /* STYLES HERE */
}
 

Avec cette configuration, cela fonctionne pour le voir sur l'iPhone mais cela ne fonctionne pas dans le navigateur. C'est vraiment irritant alors l'aide est très appréciée. Est-ce parce que j'ai déjà un appareil dans la méta et peut-être à la place ( max-width:480px )?

457voto

Beneto Points 1336

J'ai trouvé la meilleure méthode consiste à écrire votre CSS par défaut pour les navigateurs plus anciens, tels que les navigateurs plus anciens, notamment 5.5, 6, 7 et 8. Impossible de lire @media. Quand j'utilise @media, je l'utilise comme ceci:

 <style type="text/css">
    /* default styles here for older browsers. 
       I tend to go for a 600px - 960px width max but using percentages
    */
    @media only screen and (min-width:960px){
        /* styles for browsers larger than 960px; */
    }
    @media only screen and (min-width:1440px){
        /* styles for browsers larger than 1440px; */
    }
    @media only screen and (min-width:2000px){
        /* for sumo sized (mac) screens */
    }
    @media only screen and (max-device-width:480px){
       /* styles for mobile browsers smaller than 480px; (iPhone) */
    }
    @media only screen and (device-width:768px){
       /* default iPad screens */
    }
    /* different techniques for iPad screening */
    @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait) {
      /* For portrait layouts only */
    }

    @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape) {
      /* For landscape layouts only */
    }
</style>
 

Mais vous pouvez faire ce que vous voulez avec votre @ media. Ceci est juste un exemple de ce que j'ai trouvé le mieux pour moi lors de la création de styles pour tous les navigateurs.

iPad CSS spécifications.

55voto

jpostdesign Points 119

Je pense que le problème sous-jacent utilise max-device-width rapport à l'ancienne max-width . L'utilisation du mot clé "device" permet de définir la dimension physique de l'écran et non la largeur de la fenêtre du navigateur.

Par exemple:

 @media only screen and (max-device-width: 480px) {
    /* STYLES HERE for DEVICES with physical max-screen width of 480px */
}
 

Contre

 @media only screen and (max-width: 480px) {
    /* STYLES HERE for BROWSER WINDOWS with a max-width of 480px. This will work on desktops when the window is narrowed.  */
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X