← Назад к вопросам

Какие ошибки можно найти в адаптиве

2.3 Middle🔥 203 комментариев
#Работа с дефектами

Комментарии (3)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Анализ типичных ошибок в адаптивной вёрстке (Responsive Web Design)

Адаптивная вёрстка — это комплексный подход, и ошибки в ней могут возникать на разных уровнях, от концептуальных до технических. Вот основные категории проблем, которые я, как QA Engineer, проверяю в первую очередь.

1. Медиа-запросы (Media Queries)

Чаще всего ошибки кроются в неправильном использовании или отсутствии медиа-запросов.

  • Некорректные breakpoints (точки перелома): Использование произвольных или «магических» значений вместо стандартных или продиктованых дизайном. Проверяю соответствие макетам (320px, 768px, 1024px, 1440px и т.д.).
  • Пропущенные breakpoints: Контент «ломается» или выглядит нечитаемо на промежуточных разрешениях между заданными точками.
  • Конфликтующие стили: Когда правила из разных медиа-запросов переопределяют друг друга в неожиданном порядке из-за специфичности или неправильной последовательности в CSS. Всегда проверяю каскад.

2. Метатег viewport

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

<!-- ОШИБКА: Без этого тега мобильный браузер отрисует страницу как для десктопа -->
<head>
    <!-- Контент -->
</head>

<!-- ПРАВИЛЬНО: -->
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

3. Модульная сетка и контейнеры

  • Жёсткие (фиксированные) размеры: Использование width: 300px или height: 200px для ключевых блоков вместо относительных единиц (%, vw, fr) или max-width.
  • Переполнение контейнера (overflow): Контент (длинные слова, широкие изображения, таблицы) выходит за границы родительского блока на малых экранах, создавая горизонтальную прокрутку. Лечится свойствами overflow-wrap, word-break, max-width: 100% для медиа.
  • Неадаптивные контейнеры: Основной контейнер (container, wrapper) не имеет ограничений по ширине (max-width) на больших экранах, и контент растягивается на всю ширину 4K-монитора, что ухудшает читаемость.

4. Изображения и медиа

Это отдельный пласт проблем, влияющий на производительность и UX.

/* ОШИБКА: Изображение растянется на весь экран мобильного устройства */
img {
    width: 100%;
}

/* ЧАСТО ЛУЧШЕ: Изображение не превысит своих исходных размеров */
img {
    max-width: 100%;
    height: auto; /* Сохранение пропорций */
}
  • Неадаптивные изображения: Отсутствие srcset/sizes для ретины и разных разрешений, что приводит к загрузке тяжелых изображений на мобильные устройства.
  • Фоновые изображения: Неправильное использование background-size: cover/contain, из-за чего важные части изображения обрезаются или теряется композиция.

5. Типографика и читаемость

  • Фиксированные размеры шрифтов: Использование px вместо относительных единиц (rem, em), что мешает пользователям изменять базовый размер шрифта в настройках браузера.
  • Неконтрастный текст: На малых экранах при ярком освещении текст низкого контраста становится нечитаемым. Проверяю по WCAG (минимум 4.5:1 для обычного текста).
  • Слишком длинные или короткие строки: На широких экранах строка в 1000px — это мучение для глаз. Нужно ограничивать max-width у текстовых блоков (например, 70ch).

6. Навигация и интерактивные элементы

  • Критический для UX пункт — размер области касания (tap target). Кнопки, ссылки и иконки на мобильных устройствах должны быть не менее 44x44 пикселя (рекомендации Apple Human Interface Guidelines и WCAG).
  • Неадаптивное меню: Горизонтальное меню с 10 пунктами не помещается на экране 320px. Должно трансформироваться в «гамбургер», аккордеон или выпадающий список.
  • Hover-эффекты на touch-устройствах: Элементы, которые активируются только по :hover, становятся недоступны на тачскринах. Нужна адаптация через @media (hover: hover) или дублирование функционала по клику.

7. Тестирование и методология

Частая процессуальная ошибка — проверять адаптивность только в эмуляторах браузера (DevTools). Они не учитывают реальную производительность, особенности рендеринга конкретного устройства, поддержку современных CSS-свойств (например, gap для Flexbox в старых iOS) и настоящие touch-события.

Мой чек-лист для тестирования адаптива включает:

  • Проверку на реальных устройствах (как минимум, 2-3 разных телефона и планшета).
  • Тестирование в разных браузерах (Chrome, Safari, Firefox) и их мобильных версиях.
  • Проверку ориентации (портрет/ландшафт).
  • Проверку поведения при увеличении/уменьшении текста в настройках ОС.
  • Проверку на наличие горизонтальной прокрутки на всех разрешениях (от 320px до 1920px+).
  • Использование инструментов вроде BrowserStack или LambdaTest для покрытия большего числа платформ.

Как видите, ошибки в адаптивной вёрстке — это не только про «съехал блок». Это комплексная проверка функциональности, производительности, доступности (a11y) и пользовательского опыта на всём спектре устройств и сценариев использования.