ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку

Отключение автоматического зума в Safari на iPhone

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для предотвращения автоматического масштабирования в браузере Safari на iPhone вам понадобится мета-тег viewport:

HTML
Скопировать код
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

Такая настройка фиксирует уровень масштабирования на отметке 1 и деактивирует масштабирование, инициированное пользователем, что препятствует автоматическому масштабированию полей ввода. Однако, установка user-scalable=no может усложнить взаимодействие пользователя со страницей, поэтому важно найти баланс между стабильностью и удобством использования.

Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Визуализация

Автоматическое масштабирование можно воспринимать как попытку Safari увеличить размер мелкого шрифта. Если нам требуется стабильный интерфейс, эту функцию можно отключить.

Markdown
Скопировать код
📱 Пользователь нажимает на поле ввода
|
| (Safari автоматически изменяет масштаб) 🔍-->📝
|
🚫 Наша цель – предотвратить это автомасштабирование!
CSS
Скопировать код
input[type="text"] {
  font-size: 16px; /* Укрощаем Safari! */
}

Задание размера шрифта в 16px останавливает автоматическое масштабирование в Safari.

Теперь интерфейс остается стабильным, когда пользователь переходит в текстовое поле.

Подробное рассмотрение способов предотвращения и улучшения

Магическая сила минимального размера шрифта

Для предотвращения автоматического масштабирования в Safari устанавливаем минимальный размер шрифта 16px для элементов input, select и textarea.

CSS
Скопировать код
input, select, textarea {
  font-size: 16px; /* Настраиваем Safari к Хэллоуину: невидимка */
}

Применение медиа-запросов

Используем медиа-запросы @media в сочетании с функцией -webkit-min-device-pixel-ratio для реализации стилей, специфических для Safari:

CSS
Скопировать код
@media screen and (-webkit-min-device-pixel-ratio:0) {
  input, select, textarea {
    font-size: 16px; /* Обещание Safari: без масштабирования! */
  }
}

Единый размер шрифта, контролируемый из одной точки

Применение font-size: inherit к элементам формы позволяет централизованно управлять из одного места, которым обычно является body:

CSS
Скопировать код
body {
  font-size: 16px;
}

input, select, textarea {
  font-size: inherit; /* Принимаем ваш UIManager receipt... это, наследуем font-size */
}

Преимущества ориентированных на мобильные устройства дизайна

Следуем подходу, ориентированному на мобильные устройства. Он предполагает дизайн, в котором масштабирование не требуется, и элементы легко доступны.

Основной принцип успешности – последовательность

Убеждаемся, что CSS-правила одинаково применяются как к фокусирующимся, так и нон-фокусирующимся состояниям, чтобы обеспечить оптимальную визуальную последовательность.

CSS
Скопировать код
input:active, input:focus {
  font-size: inherit; /* Все ждут моего контроля! */
}

Возможности доступности без масштабирования

Сохранение доступности страницы очень важно. Дайте пользователям возможность масштабирования, используя maximum-scale=1.0 вместо user-scalable=no.

Обходные пути особенностей Safari

Используем известные обходные пути для решения проблем, связанных с особенностями мобильного Safari:

CSS
Скопировать код
select:focus {
  background: #eee; /* У меня 99 проблем, но отслеживание фокуса – не одна из них */
}

Сохраняем формы в модальных окнах и предотвращаем скачки интерфейса при активации поля ввода.

Полезные материалы

  1. Viewport meta tag – HTML: HyperText Markup Language | MDN — обзор возможности регулирования масштабирования на мобильных устройствах с помощью мета-тега viewport.
  2. Supported Meta Tags — объяснение мета-тегов Safari.
  3. ios10 – disable viewport zooming iOS 10+ safari? – Stack Overflow — активные обсуждения и предложения решений от сообщества.
  4. Designing Websites for iPhone X | WebKit — принципы дизайна для iOS.
  5. touch-action – CSS: Cascading Style Sheets | MDN — взаимодействие с сенсорными экранами в веб-страницах.
  6. Pointer Events — понимание возможностей и событий сенсорных экранов.
  7. HTML Standard — стандарты доступности для веб-приложений.