J'ai besoin de développer des pages html pour téléphones iPhone/Android, mais quelle est la différence entre max-device-width
et max-width
? Je dois utiliser différents CSS pour différentes tailles d'écran.
@media all and (max-device-width: 400px)
@media all and (max-width: 400px)
Quelle est la différence?
max-width
est la largeur de la zone d'affichage cible, par ex. le navigateur
max-device-width
est la largeur de la zone de rendu de l'appareil, c'est-à-dire l'écran de l'appareil
Il en va de même pour max-height
et max-device-height
naturellement.
max-width
fait référence à la largeur de la fenêtre et peut être utilisé pour cibler des tailles ou des orientations spécifiques en association avec max-height
. En utilisant plusieurs conditions 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 périphérique tel qu'un iPhone.
max-device-width
fait référence à la taille de la fenêtre d'affichage du périphérique, quelle que soit l'orientation, l'échelle actuelle ou le redimensionnement. Cela ne changera pas sur un périphérique et ne pourra donc pas être utilisé pour changer de feuille de style ou de directive CSS lors de la rotation ou du redimensionnement de l'écran.
Que pensez-vous de l'utilisation de ce style?
J'utilise min(max)-device-width
pour tous les points d'arrêt principalement destinés à un "appareil mobile" et pour min(max)-width
pour les points d'arrêt principalement destinés à "Bureau".
Il existe de nombreux "appareils 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 */
}
max-device-width aura des valeurs constantes (probablement deux)
@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 correspond à la largeur de la zone d'affichage cible, c'est-à-dire la taille actuelle du navigateur.
la différence est que max-device-width correspond à la largeur de l'écran et max-width correspond à 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 utilisez max-device-width, cela ne fonctionnera que dans Opera, mais je suis sûr que max-width fonctionnera pour tous les types de navigateurs mobiles (je l’avais testé sous Chrome, Firefox et opera pour Android).
Si vous créez une application multiplate-forme (par exemple, en utilisant phonegap/cordova), alors,
N'utilisez pas device-width ou device-height. Utilisez plutôt la largeur ou la hauteur dans les requêtes de média CSS, car Android périphérique posera des problèmes de largeur ou de hauteur. Pour iOS cela fonctionne bien. Seuls les appareils Android ne prennent pas en charge la largeur/la hauteur du périphérique.
N'utilisez plus la largeur/hauteur de l'appareil.
device-width, device-height et device-ratio-ratio sont obsolètes dans les requêtes sur les médias Niveau 4: https://developer.mozilla.org/en-US/docs/Web/CSS/@media#Media_features
Utilisez simplement largeur/hauteur (sans min/max) en combinaison avec l'orientation et la résolution (min/max) pour cibler des périphériques spécifiques. Sur mobile, largeur/hauteur doit être identique à device-width/height.
max-width est la largeur de la zone d'affichage cible, p. ex. le navigateur; max-device-width est la largeur de la totalité de la zone de rendu du périphérique, c'est-à-dire l'écran du périphérique réel.
• Si vous utilisez le paramètre max-device-width, lorsque vous modifiez la taille de la fenêtre du navigateur sur votre bureau, le style CSS ne sera pas remplacé par un paramètre de requête multimédia différent.
• Si vous utilisez max-width, lorsque vous modifiez la taille du navigateur sur votre bureau, la CSS passera à un paramètre de requête multimédia différent et il se peut que le style des mobiles soit affiché. sous forme de menus tactiles.