Alle Antworten sind falsch. Android wechselt von Porträt zu Landschaft, wenn die Tastatur angezeigt wird.
Verschiedene Tastaturen müssen ebenfalls getestet werden, da sie mehr vertikalen Platz einnehmen können. Swift-Tastatur nimmt mehr vertikalen Platz ein, so dass Sie keine Lösungen wie @media-Bildschirm und (min-aspect-ratio: 13/9) {/ * Landschaftsstile hier * /} verwenden können, da dies auf vielen Telefonen fehlschlagen wird.
Die einzige Lösung ist die Verwendung von Javascript.
Auf neueren Android-Geräten können Sie die neue window.screen.orientation API testen und verwenden.
Auf iOS können Sie window.orientation verwenden, die gut funktioniert. dh Math.abs (window.orientation) === 90 ist Landschaft
Und als Fallback können Sie window.screen.width> window.screen.height verwenden, die wirklich alte Android-Geräte abdecken, die das neue Fenster nicht unterstützen .screen.orientation api
Dann müssen Sie nur noch eine Klasse hinzufügen oder entfernen, die auf resize/orientationchange -Ereignissen basiert.
Danke! Kleine Folgefrage: Was passiert, wenn jemand seinen Handybildschirm neigt, so dass sich die Ausrichtung ändert? Ändert sich das angewandte CSS? – Keelan
Ich habe mich selbst nicht überprüft, aber ich bin ziemlich sicher, dass dies der Fall ist, da andere Medienabfragen (wie z. B. Bildschirmbreite) erneut überprüft werden. – mogelbrod
Okay, danke für alles! – Keelan