Тестовый стенд
Новое Собрали ответы на частые вопросы о работе с системой Открыть раздел →
🍪 Cookie и персональные данные

  Мы используем обязательные cookie для работы сайта и аналитические — для сбора обезличенной статистики. Нажимая «Принять», вы соглашаетесь на аналитику. Выбор «Только необходимые» оставит сайт полностью функциональным.

Подробнее — в политике конфиденциальности и пользовательском соглашении.

Почему пикселили картинки: четыре неверных диагноза и одна строка CSS

05.09.2026 ~3 мин чтения Журнал
Почему пикселили картинки: четыре неверных диагноза и одна строка CSS

История одной поломки, которую чинили пять раз. Полезна не результатом, а тем, как искали: каждый неверный диагноз выглядел убедительно и опирался на настоящую находку.

Что видел владелец

Обложки товаров на витрине выглядели рассыпавшимися на квадраты. Тонкие линии — провод лампы, молния рюкзака, ремешок часов — шли ступеньками. Встроенные картинки-заглушки при этом были чистыми.

Четыре починки мимо цели

Сначала показалось, что виноваты мелкие исходники: часть фотографий была 425 пикселей по стороне. Заменили — не помогло. Потом нашлось, что уменьшенные копии готовились неверно: картинку меньше заданного размера код РАСТЯГИВАЛ. Это был настоящий дефект, его починили — не помогло.

Третьей находкой стал композиторский слой: появление блоков при прокрутке оставляло на картинках подсказку will-change, и браузер растеризовал их один раз, а дальше растягивал готовый растр. Тоже настоящий дефект, тоже починили — и снова не помогло.

Четвёртой попыткой стали квадратные копии, готовые заранее. Не помогло, зато навредило: квадрат обрезал вертикальные фотографии, и у обложек срезало надписи.

Что решило дело

Три наблюдения владельца, и каждое было уликой:

  • Во всех браузерах сразу — значит виновато не поведение конкретного движка
  • Во всех шаблонах сразу — значит правило общее, а не в одном шаблоне
  • А на странице товара чисто — значит дело в масштабировании: там его почти нет

Сходилось это в одном месте — общем правиле для картинок. Там стояло image-rendering: crisp-edges. Этот режим ЗАПРЕЩАЕТ браузеру сглаживать картинку при масштабировании: он придуман для пиксель-арта и схем, где размытие портит замысел, а на фотографии даёт зубцы на каждой наклонной линии. Заглушки не страдали, потому что они векторные и рисуются формулами.

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

Что осталось полезного

Три починки по дороге были настоящими и остались в системе: копии больше не растягиваются, слой снимается после появления блока, а карточка витрины получает готовую копию нужной пропорции. Ложным был не диагноз, а уверенность, что найденное объясняет ВСЁ.

Ещё в журнале

На главную
Поделиться:
Остались вопросы? Ответим в течение рабочего дня — напишите нам удобным способом.
Написать нам