Skalierungsprobleme Ursache Vergrößern des Eingabefokus
Es ist sehr schwierig, den Inhalt für verschiedene Bildschirmauflösungen und -größen zu dimensionieren, was letztendlich die Ursache für dieses Zoomproblem ist.
Die meisten mobilen Browser haben einen Auslöser für den Eingabefokus (den Sie nicht ohne Schwierigkeiten überschreiben können):
if (zoom-level < 1)
zoom to 1.5
center focused input relative to screen
* Ja, das war viel zu stark vereinfacht.
Mythos von Meta-Tag-Skalierungskorrekturen.
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
Alle diese Ansichtsfenstereinstellungen verhindern nicht, dass der Eingabefokus vergrößert wird, wenn Sie verkleinert werden. Diese überschreiben auch keine anderen HTML-, Körper- oder Elementgrößen, die das Fenster auf eine Breite bringen würden, die breiter als der Bildschirm ist.
Hauptursache
Verwenden eines Fensters oder einer Körpergröße, die größer als die Bildschirmabmessungen des Geräts ist.
Betrachten Sie die Standard-Bildschirmgröße der meisten Galaxy-Smartphones von Android-Smartphones: 360 x 650. Wenn Ihr Dokumentkörper oder Fenster größer als das definiert ist (sagen wir 1024 breit, um dies deutlich zu machen), können einige Dinge passieren geschehen:
- Der Browser kann automatisch verkleinern, um die Breite an den Bildschirm anzupassen.
- Der Benutzer kann die oben genannten Schritte ausführen.
- Möglicherweise haben Sie das oben genannte getan.
- Der Browser stellt die Zoomstufe bei nachfolgenden Besuchen der Seite wieder her.
- Sie sehen den Inhalt jetzt mit ~ 0,35-fachem Zoom.
Ausgangszustand 1x
Beim Laden passt die Seite nicht. Einige Browser können verkleinern, um sie an das Fenster anzupassen, aber der Benutzer wird es mit Sicherheit tun. Wenn Sie diese Seite einmal verkleinert haben, speichert der Browser außerdem die Zoomstufe.
Verkleinern, um das 0,35-fache anzupassen
Nach dem Verkleinern passt die Breite gut und eine Seite mit mehr vertikalem Bereich füllt den Bildschirm ganz gut aus ... aber ...
Beachten Sie, dass sich der Browser jetzt in einem Zustand befindet, in dem Text und Eingabe (Größe für normalen 1-fachen Zoom) viel zu klein zum Lesen sind, wodurch ein Usability-Verhalten beim Zoomen auf die Eingabefelder ausgelöst wird, wenn sie fokussiert werden.
Zoomen Sie auf den Eingangsfokus 1,5x
Typisches Verhalten im obigen Fall ist das Zoomen auf das 1,5-fache, um die Sichtbarkeit der Eingabe zu gewährleisten. Das Ergebnis (wenn Sie alles so gestaltet haben, dass es beim Herauszoomen oder beim größeren Bildschirm besser aussieht) ist weniger als wünschenswert.
Lösung 1
Verwenden Sie eine Kombination aus CSS-Medienregeln, Geräteerkennung oder dem, was Ihrer Situation am besten entspricht. Stellen Sie das Fenster und den Körper auf eine Größe ein, die den Bildschirmbereich ausfüllt, ohne ihn zu überschreiten.
- Aus diesem Grund haben so viele Menschen Erfolg damit, die Größe des Eingabetextes auf 16 Pixel zu erzwingen.
- Sobald Sie das tun, ist es klar, dass Sie weggezoomt sind.
- Es hat auch den zusätzlichen Vorteil, dass der Browser dazu gebracht wird, dass leicht verkleinerte Fenster den Fokus-Zoom nicht auslösen.
Lösung 2
Verwenden Sie das Meta-Ansichtsfenster, aber seien Sie dann vorsichtig mit den CSS-Breiten.
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
- Wenn Sie diese Methode verwenden, müssen Sie einen der folgenden Schritte ausführen:
- Verwenden Sie nur Prozentsätze für Breiten.
- Definieren Sie eine em-Breite und verwenden Sie em und% nur für Breiten.
- Informationen zur Verwendung von px-Breiten finden Sie in Lösung 1.
Lösung 3
jQuery.mobile $.mobile.zoom.disable();
Stellen Sie einfach sicher, dass Sie von Anfang an damit beginnen und nicht von der Mitte aus.