Alle oben aufgeführten Antworten, die für max-device-width
oder max-device-height
für Medienabfragen verwendet werden, weisen einen sehr starken Fehler auf: Sie zielen auch auf viele andere beliebte mobile Geräte ab (wahrscheinlich unerwünscht und nie getestet, oder die in Zukunft auf den Markt kommen werden).
Diese Abfrage funktioniert für alle Geräte mit einem kleineren Bildschirm , und wahrscheinlich ist Ihr Design fehlerhaft.
In Kombination mit ähnlichen gerätespezifischen Medienabfragen (für HTC, Samsung, IPod, Nexus ...) wird diese Vorgehensweise eine Zeitbombe auslösen. Beim Debiggen kann diese Idee Ihr CSS zu einem unkontrollierten Spagetti machen. Sie können niemals alle möglichen Geräte testen.
Bitte beachten Sie, dass die einzige Medienabfrage, die immer auf IPhone5 abzielt, und nichts anderes :
/* iPhone 5 Retina regardless of IOS version */
@media (device-height : 568px)
and (device-width : 320px)
and (-webkit-min-device-pixel-ratio: 2)
/* and (orientation : todo: you can add orientation or delete this comment)*/ {
/*IPhone 5 only CSS here*/
}
Beachten Sie, dass hier die genaue Breite und Höhe, nicht die maximale Breite, überprüft wird.
Was ist nun die Lösung? Wenn Sie eine Webseite schreiben möchten, die auf allen möglichen Geräten gut aussieht, verwenden Sie am besten Degradation
/ * Verschlechterungsmuster Wir überprüfen die Bildschirmbreite nur sicher, dies ändert sich von Hoch- zu Querformat * /
/*css for desktops here*/
@media (max-device-width: 1024px) {
/*IPad portrait AND netbooks, AND anything with smaller screen*/
/*make the design flexible if possible */
/*Structure your code thinking about all devices that go below*/
}
@media (max-device-width: 640px) {
/*Iphone portrait and smaller*/
}
@media (max-device-width: 540px) {
/*Smaller and smaller...*/
}
@media (max-device-width: 320px) {
/*IPhone portrait and smaller. You can probably stop on 320px*/
}
Wenn mehr als 30% Ihrer Website-Besucher von Handys kommen, stellen Sie dieses Schema auf den Kopf und bieten Sie einen Mobile-First-Ansatz. Verwenden Sie min-device-width
in diesem Fall. Dies beschleunigt das Rendern von Webseiten für mobile Browser.