247 votes

Quelle est la différence entre max-device-width et max-width pour le web mobile ?

J'ai besoin de développer des pages html pour les téléphones iphone/Android, mais quelle est la différence entre les deux ? max-device-width y max-width ? Je dois utiliser un code css différent selon la taille de l'écran.

@media all and (max-device-width: 400px)

@media all and (max-width: 400px)

Quelle est la différence ?

4 votes

1 votes

J'ai constaté que max-device-width fonctionne même si <meta name="viewport" ...> n'est pas incluse pour les appareils à petit écran et max-width ne fonctionne pas sans un meta étiquette

262voto

Ian Devlin Points 8885

max-width est la largeur de la zone d'affichage cible, par exemple le navigateur

max-device-width est la largeur de l'ensemble de la zone de rendu du dispositif, c'est-à-dire l'écran réel du dispositif.

Il en va de même pour max-height y max-device-height naturellement.

15 votes

Si vous voulez voir le changement lorsque vous redimensionnez votre navigateur, utilisez max-width pour le développement, bien que max-device-width soit plus précis pour la production.

33 votes

@JohnMagnolia Qu'est-ce qui vous fait penser que max-device-width est meilleur pour la production ? La largeur maximale ne garantirait-elle pas une meilleure réactivité, quel que soit le périphérique ?

8 votes

@eknnow Je suis d'accord. Les utilisateurs, quel que soit leur niveau de compétence ou de connaissance, n'ont pas toujours la fenêtre de leur navigateur de bureau maximisée (mais je n'ai pas encore vu de tablette ou de téléphone dont le navigateur n'était PAS ouvert au maximum - je suppose que c'est possible dans une application hybride, mais c'est un cas différent). Une largeur maximale serait certainement plus universelle.

87voto

voncox Points 736

max-width se réfère à la largeur de la fenêtre d'affichage et peut être utilisé pour cibler des tailles ou des orientations spécifiques en conjonction avec max-height . L'utilisation de plusieurs max-width (ou min-width ), vous pouvez modifier le style de la page lorsque le navigateur est redimensionné ou que l'orientation change sur un appareil comme un iPhone.

max-device-width fait référence à la taille de la fenêtre d'affichage du périphérique, indépendamment de l'orientation, de l'échelle actuelle ou du redimensionnement. Elle ne changera pas sur un appareil et ne peut donc pas être utilisée pour changer les feuilles de style ou les directives CSS lorsque l'écran est tourné ou redimensionné.

12 votes

Cette réponse m'a fait "cliquer" mieux que la réponse acceptée. Il semble que pour la plupart des applications, max-width y max-height seront celles à utiliser.

2 votes

Dans un autre fil de discussion sur le SO, @JackieChiles soulève un point intéressant à prendre en compte (concernant les styles mobiles apparaissant sur des appareils plus grands) : stackoverflow.com/questions/8564752/

5 votes

Cette bonne réponse n'est pas complète : l'orientation permute la largeur et la hauteur de l'appareil sur Android mais pas sur iOS : voir quirksmode.org/blog/archives/2010/04/la_orientation.html .

17voto

1ubos Points 604

Que pensez-vous de l'utilisation de ce style ?

Pour tous les points d'arrêt qui sont principalement destinés à un "appareil mobile", j'utilise min(max)-device-width et pour les points d'arrêt qui sont principalement destinés à un usage "bureautique". min(max)-width .

Il y a beaucoup de "dispositifs mobiles" qui calculent mal la largeur.

Regardez http://www.javascriptkit.com/dhtmltutors/cssmediaqueries2.shtml :

/* #### Mobile Phones Portrait #### */
@media screen and (max-device-width: 480px) and (orientation: portrait){
  /* some CSS here */
}

/* #### Mobile Phones Landscape #### */
@media screen and (max-device-width: 640px) and (orientation: landscape){
  /* some CSS here */
}

/* #### Mobile Phones Portrait or Landscape #### */
@media screen and (max-device-width: 640px){
  /* some CSS here */
}

/* #### iPhone 4+ Portrait or Landscape #### */
@media screen and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2){
  /* some CSS here */
}

/* #### Tablets Portrait or Landscape #### */
@media screen and (min-device-width: 768px) and (max-device-width: 1024px){
  /* some CSS here */
}

/* #### Desktops #### */
@media screen and (min-width: 1024px){
  /* some CSS here */
}

0 votes

Cela ne répond pas à la question et c'est en fait une mauvaise façon de travailler sur vos points d'arrêt - Faites attention.

10voto

Sarath Points 3216

Max-device-width est la largeur de rendu du dispositif.

@media all and (max-device-width: 400px) {
    /* styles for devices with a maximum width of 400px and less
       Changes only on device orientation */
}

@media all and (max-width: 400px) {
    /* styles for target area with a maximum width of 400px and less
       Changes on device orientation , browser resize */
}

La largeur maximale est la largeur de la zone d'affichage cible, c'est-à-dire la taille actuelle du navigateur.

3 votes

@media all and (max-width : 400px) { } Quelle est la différence ?

6voto

Danny Points 39

La différence est que max-device-width est la largeur de tous les écrans et max-width signifie l'espace utilisé par le navigateur pour afficher les pages. Mais une autre différence importante est le support des navigateurs Android, en fait si vous allez utiliser max-device-width cela ne fonctionnera que dans Opera, au lieu de cela je suis sûr que max-width fonctionnera pour tout type de navigateur mobile (je l'ai testé dans Chrome, firefox et opera pour Android).

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