Проблеми із масштабуванням спричиняють збільшення фокусу на вході
Існує велика складність у встановленні розміру вмісту для різних роздільних здатностей та розмірів екрану, що, зрештою, і є причиною цієї проблеми масштабування.
Більшість мобільних браузерів мають тригер на фокусі введення (що ви не можете без проблем переїхати):
if (zoom-level < 1)
zoom to 1.5
center focused input relative to screen
* так, це було занадто спрощено.
Міф про виправлення масштабу мета-тегів.
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
Усі такі налаштування області перегляду не завадять масштабуванню фокусу на вході, якщо ви зменшуєте масштаб. Вони також не будуть переїжджати будь-який інший розмір html, корпусу чи елемента, який змістив би вікно на ширину ширшу, ніж екран.
Основна причина
Використання вікна або розміру корпусу більше розмірів екрана пристрою.
Розглянемо стандартний розмір екрану для більшості лінійки смартфонів Android: 360 x 650. Якщо корпус вашого документа або вікно визначено більшим за цей (скажімо, шириною 1024, щоб це стало очевидним), деякі речі можуть трапиться:
- Браузер може автоматично зменшувати масштаб відповідно до ширини екрана.
- Користувач може зробити вищезазначене.
- Можливо, ви зробили вищезазначене.
- Браузер відновить рівень масштабування при наступних відвідуваннях сторінки.
- Зараз ви переглядаєте вміст із масштабуванням ~ 0,35x.
Початковий стан 1x
Після завантаження сторінка не вміщується. Деякі браузери можуть зменшувати масштаб відповідно до вікна, але користувач, безсумнівно, буде. Крім того, якщо один раз зменшити цю сторінку, браузер збереже рівень масштабування.
Зменште розмір до розміру 0,35x
Після зменшення ширина буде добре підходити, а сторінка з більшою вертикальною площею заповнить екран досить красиво ... але ...
Зверніть увагу, що браузер зараз перебуває у стані, коли текст та введення (розмір для звичайного 1-кратного масштабування) були б занадто малі для читання, що спричиняє поведінку зручності масштабування полів введення, коли вони фокусуються.
Збільшити вхідний фокус 1,5x
Типовою поведінкою у наведеному вище випадку є збільшення до 1,5-кратного, щоб забезпечити видимість введення. Результат (якщо ви стилізували все, щоб виглядати краще при зменшенні масштабу або для великого екрану), є менш бажаним.
Рішення 1
Використовуйте комбінацію правил css-носіїв, виявлення пристроїв або будь-чого, що найкраще відповідає вашій ситуації. Встановіть для вікна та корпусу розмір, який заповнює екран, не перевищуючи його.
- Ось чому так багато людей досягають успіху, примушуючи розмір введеного тексту до 16 пікселів;
- як тільки ви це зробите, стає зрозуміло, що ви ШАГ зменшили.
- він також має додаткову перевагу, обманюючи браузер, дозволяючи злегка зменшеним вікнам не викликати фокусування.
Рішення 2
Використовуйте мета-область перегляду, але тоді будьте обережні з шириною css.
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
- Використовуючи цей метод, ви повинні зробити одне з наступного:
- Використовуйте лише відсотки для ширини.
- Визначте ширину em та використовуйте em та% лише для ширини.
- див. рішення 1 щодо використання ширини пікселів.
Рішення 3
jQuery.mobile $.mobile.zoom.disable();
Просто переконайтеся, що ви починаєте розробляти його з самого початку, а не з середини.