Deaktivieren Sie Auto-Zoom in Eingabe "Text" -Tag - Safari auf dem iPhone
Machte ich eine HTML-Seite, hat ein <input>
tag mit type="text"
. Wenn ich auf es mit Safari auf dem iPhone, die Seite wird größer (auto-zoom). Weiß jemand wie man dies deaktivieren?
InformationsquelleAutor der Frage Eduardo Montenegro | 2010-06-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Browser-zoom, wenn die font-size ist weniger als
16px
und die Standard-schriftart-Größe-form-Elemente ist11px
(zumindest in Chrome und Safari).Darüber hinaus die
select
element haben muss, um diefocus
pseudo-Klasse befestigt.Ist es nicht erforderlich, alle oben genannten, können Sie auch einfach Stil der Elemente, die Sie benötigen, wie zB: nur
text
number
undtextarea
:Alternative Lösung zu haben die input-Elemente Erben von einem Elternteil Stil:
InformationsquelleAutor der Antwort srikanth
Neu: IOS wird sich noch vergrößern, es sei denn, Sie verwenden 16px an den Eingang, ohne den Fokus.
Ich habe einen hintergrund seit IOS fügt keinen hintergrund auswählen.
InformationsquelleAutor der Antwort Christina
Ob Ihre website geeignet ist für ein mobiles Gerät, mit dem Sie entscheiden könnten, nicht zulassen, dass die Skalierung.
Dies löst das problem, dass Ihre mobile Seite oder form ist, zu "schweben" um.
InformationsquelleAutor der Antwort Marcellino Bommezijn
Zusammenfassend die Antwort ist: legen Sie die Schriftgröße der Elemente bilden, zu mindestens 16px
InformationsquelleAutor der Antwort Nik
Ab iOS 10 (oder vielleicht früher), können Sie verhindern, dass Safari automatisch vergrößern auf die text-Felder der user während der Eingabe ohne deaktivieren die Fähigkeit des Benutzers, um pinch-zoom. Fügen Sie einfach
maximum-scale=1
aber lassen sich die Nutzer-Attribut "scale" vorgeschlagen, in anderen Antworten.Es ist eine lohnende option, wenn Sie ein Formular in eine Ebene, die "schwebt", um, wenn gezoomt ist, die dazu führen können wichtige UI-Elemente auf dem Bildschirm bewegen.
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
InformationsquelleAutor der Antwort daxmacrog
InformationsquelleAutor der Antwort stormsweeper
Gibt es keine saubere Möglichkeit, die ich finden konnte, aber hier ist ein hack...
1), bemerkte ich, dass der mouseover-Ereignis geschieht vor dem zoom, aber der zoom geschieht, bevor mousedown-oder Fokus-Ereignisse.
2) können Sie dynamisch ändern Sie den META-viewport-tag mit javascript (siehe Aktivieren/deaktivieren der zoom auf dem iPhone safari mit Javascript?)
Also, versuchen Sie diese (siehe jquery für Kompaktheit):
Dies ist definitiv ein hack... kann es Situationen geben, in denen mouseover/down nicht immer fangen entries/exits, aber es funktionierte gut in meinen tests und ist ein solider start.
InformationsquelleAutor der Antwort dlo
Ich habe vor kurzem (heute :D) zu integrieren hatten dieses Verhalten. Um keine Auswirkungen auf die original-design-Bereichen, einschließlich combo, entschied ich mich zum anwenden der transformation auf den Mittelpunkt des Feldes:
InformationsquelleAutor der Antwort piouPiouM
Hinzufügen user-scalable=0 zu viewport meta wie folgt
Arbeitete für mich 🙂
InformationsquelleAutor der Antwort Tuyen Cao
Javascript-hack die arbeiten an iOS 7. Dies basiert auf der @dlo 's beantworten, aber die mouseover-und mouseout-Ereignisse werden ersetzt durch touchstart und touchend. Im Grunde dieses script fügen Sie eine halbe Sekunde timeout, bevor Sie die zoom-würde wieder aktiviert, um zu verhindern, dass Zoomen.
InformationsquelleAutor der Antwort Ilkka R.
Benutzte ich Christina ' s Lösung oben, aber mit einer kleinen Modifikation für die bootstrap-und eine andere Regel zu gelten für desktop-Computer. Bootstrap Standard-schriftart-Größe 14px wodurch der zoom. Die folgenden änderungen, die es zu 16px für "Formular-Steuerelemente" in der Bootstrap -, Verhinderung der zoom.
Und zurück 14px für nicht-mobile-Browser.
Versuchte ich mit .form-control:focus, die es auf 14px, außer auf die konzentrieren, die es geändert 16px und es nicht fix das zoom-problem mit iOS8. Zumindest auf meinem iPhone mit iOS8, die font-size werden 16px vor dem Schwerpunkt für das iPhone nicht die Seite Zoomen.
InformationsquelleAutor der Antwort Tanny O'Haley
Habe ich diese, auch mit jQuery:
Natürlich, einige andere Elemente in der Benutzeroberfläche kann angepasst werden, wenn dies
16px
font-size bricht das design.InformationsquelleAutor der Antwort Nicolas Hoizey
Dieser arbeitete für mich:
InformationsquelleAutor der Antwort
Nach einer Weile, während Sie versuchen kam ich mit dieser Lösung
Auf "mousedown" er setzt die font-size von input-auf 16px. Dies verhindert, dass das Zoomen. Auf focus-Ereignis ändert er die schriftart-Größe zurück auf den Anfangswert.
Im Gegensatz zu Lösungen gepostet vor, wird diese ermöglichen es Ihnen, die schriftart,-Größe der Eingabe, was Sie wollen.
InformationsquelleAutor der Antwort jirikuchta
Nach dem Lesen fast jede einzelne Zeile hier und testen der verschiedenen Lösungen, das ist, danke an alle, die gemeinsam Ihre Lösungen, was ich kam mit, getestet und funktioniert bei mir auf iPhone iOS 7 10.x :
Es einige Nachteile hat, allerdings spürbar ein "Klick" als Ergebnis der schnell Schriftgröße ändern-occuring zwischen den "hover"ed und "focus"ed-Staaten - und die redraw-Auswirkungen auf die Leistung
InformationsquelleAutor der Antwort l3bel
Sehe ich die Menschen hier tun seltsame Dinge mit JavaScript oder die viewport-Funktion ein-und ausschalten alle manuell Zoomen: auf Geräten.
Das sollte nicht die Lösung sein meiner Meinung nach. Das hinzufügen dieser CSS-Schnipsel wird, schalten Sie den auto-zoom in iOS ohne änderung der font-Größe auf eine Feste Zahl wie etwa 16px.
Standardmäßig verwende ich 93.8% (15px) Schriftgröße bei Eingabefeldern und durch das hinzufügen meiner CSS-snippet, das bleibt bei 93.8%. Keine Notwendigkeit zu ändern, 16px oder machen Sie eine Feste Anzahl.
InformationsquelleAutor der Antwort Jack Ottermans
Einstellung font-size (für input-Felder) gleich dem Körper die font-size, scheint das zu sein, was verhindert, dass der browser die Zoom out oder in.
Ich würde vorschlagen, zu verwenden
font-size: 1rem
mehr als eine elegante Lösung.InformationsquelleAutor der Antwort sindiploma
Als die automatische zoom-in (ohne zoom-out) ist immer noch annonying auf dem iPhone, hier ist eine JavaScript basierte auf dlo-Vorschlag, die Zusammenarbeit mit focus/blur.
Zoom wird deaktiviert, sobald eine Texteingabe fucused und re-anabled, wenn der Eingang ist Links.
Hinweis: Einige Benutzer möglicherweise nicht apprechiate die Bearbeitung von Texten in ein kleines text-input! Also, ich persönlich bevorzuge zum ändern der input-text-Größe während der Bearbeitung (siehe code unten).
Den folgenden code ändern eine Eingabe der Schriftgröße auf 16 pixel (berechnet, d.h., in die aktuelle zoom-Größe), während das element den Fokus hat. das iPhone wird also nicht automatisch zoom-in.
Hinweis: Der zoom-Faktor wird berechnet basierend auf Fenster.innerWidth-und iPhone-display mit 320 Pixel. Dies wird nur gültig für das iPhone in den portrait-Modus.
InformationsquelleAutor der Antwort BurninLeo
Basierend auf Stephen Walsh ' s Antwort... Dieser code funktioniert ohne änderung der Schrift-Größe der Eingänge auf die Konzentration (die sieht lame), plus es funktioniert immer noch mit TradeDoublerdie ich schlage vor, zusätzlich zu all mobile Websites, um dazu beitragen, die "sprunghaft". Passen Sie Ihre "viewport Breite", um Ihre Bedürfnisse anzupassen.
InformationsquelleAutor der Antwort rocky
Einen Kommentar für die top-Antwort über die Einstellung der Schriftgröße auf 16px gefragt, wie das ist eine Lösung, welche, wenn Sie möchten, größere/kleinere Schrift.
Ich don T wissen über Sie alle, aber mit px für Schriftgrößen ist nicht der beste Weg zu gehen, sollten Sie mit em.
Ich lief in dieser Frage auf meiner responsive Website, wo mein text-Feld größer als 16 Pixel. Ich hatte meine form-container eingestellt 2rem und mein input-Feld auf 1.4 em. In meinem Handy Abfragen die ich ändern der html-schriftart,-Größe, je nach viewport. Da die Standard-html ist 10, mein input-Feld berechnet zu 28px auf desktop
Entfernen Sie die auto-zoom, musste ich meinen input zu 1,6 em. Dies erhöht meine schriftart-Größe 32px. Nur etwas höher und kaum zu spüren. Auf meinem iPhone 4&5 ich mein html-Schriftgröße auf 15px für Porträt-und zurück 10px für die Landschaft. Es appeard, dass der sweet-spot für dieses pixel Größe war 48px das ist der Grund, warum ich gewechselt von 1.4 em (42px) 1.6 em (48px).
Dem, was Sie tun müssen ist, finden den sweet spot auf schriftart,-Größe und konvertieren Sie es dann rückwärts in Ihr rem/em Größen.
InformationsquelleAutor der Antwort Jon Tinsman
Hier ist ein hack, den ich auf einem meiner Projekte:
Endete mit dem ersten Stile und Maßstab ich wollte aber kein zoom auf Fokus.
InformationsquelleAutor der Antwort magom001
Es dauerte eine Weile, um es zu finden aber hier ist der beste code, den ich gefunden......http://nerd.vasilis.nl/prevent-ios-from-zooming-onfocus/
InformationsquelleAutor der Antwort Stephen Walsh
Durch die Art und Weise, wenn Sie Bootstrapkönnen Sie verwenden Sie einfach diese Variante:
InformationsquelleAutor der Antwort Bohdan Vorona
Ich habe zu "reparieren" die auto-zoom-in-form-Steuerelemente Problem für eine Niederländische website der Universität (die verwendet 15px in Formular-Steuerelemente). Ich kam mit der folgenden Anforderungen:
Dies ist, was ich kam mit so weit:
Einige Hinweise:
InformationsquelleAutor der Antwort Mark de Jong
ES IST ARBEIT!!! ICH BEENDE MEINE SUCHE REISE!
<meta name="viewport" content="width=640px, initial-scale=.5, maximum-scale=.5" />
getestet auf iPhone OS6Android 2.3.3 Emulator
ich habe eine mobile website, die hat eine Feste Breite von 640px, und ich Stand vor der autozoom im Fokus.
ich versuche zuzuteilen slutions, aber keiner war sowohl mit iPhone und Android!
nun für mich ist es ok so deaktivieren Sie das zoom, weil die website wurde für mobile-first-design!
dies ist, wo ich es finden:
Wie zu tun viewport-sizing und Skalierung für cross-browser-Unterstützung?
InformationsquelleAutor der Antwort ygaradon