
Атрибуты width и height сообщают браузеру исходные размеры изображения и его пропорции ещё до загрузки файла. Благодаря этому браузер заранее резервирует место в макете, а текст и другие элементы не смещаются после появления картинки. В CSS изображение при этом можно сделать адаптивным, сохранив заданное соотношение сторон.
Что меняют width и height у изображения
- Браузер заранее рассчитывает пропорции изображения и резервирует под него место.
- Меньше вероятность скачков макета и роста CLS при загрузке страницы.
- HTML-атрибуты задают исходные размеры, а CSS управляет отображением и адаптивностью.
- Атрибуты сами по себе не уменьшают файл и не ускоряют его скачивание.
- Для корректного результата указывайте размеры, соответствующие пропорциям файла.
Как браузер определяет место для изображения до его загрузки
Когда браузер встречает тег <img>, файл изображения может быть ещё не загружен. Если указаны атрибуты width и height, браузер использует их, чтобы определить соотношение сторон картинки и предварительно выделить место в потоке страницы.
Эти атрибуты описывают исходные размеры изображения в CSS-пикселях, а не обязательно его итоговую ширину на экране. Стили могут уменьшить картинку, например, до ширины родительского блока, сохранив пропорции.
Размеры не заменяют оптимизацию файла, выбор формата или настройку загрузки. Они помогают браузеру подготовить макет, но не делают изображение легче и не исправляют неверно заданную ссылку.
Почему заданные размеры уменьшают скачки макета
Без заранее известных пропорций браузер может сначала отобразить страницу без высоты изображения, а после загрузки файла изменить раскладку. Если ниже картинки находится текст, карточка или кнопка, они сместятся. Такое неожиданное перемещение элементов учитывается метрикой CLS (Cumulative Layout Shift).
- Браузер считывает значения
widthиheightиз HTML. - По их соотношению вычисляет пропорции изображения.
- Резервирует соответствующее место в макете до получения файла.
- После загрузки показывает картинку в подготовленной области, если CSS не меняет её пропорции.
Это полезно для фотографий в статье, обложек карточек товаров и изображений профиля. В каждом случае заранее зарезервированная область помогает сохранять положение окружающего контента.
Атрибуты width и height: что указывать в HTML
Указывайте фактическую ширину и высоту файла либо размеры, имеющие то же соотношение сторон. Например, для изображения размером 1200 на 800 пикселей укажите width="1200" и height="800", даже если на странице оно отображается уже.
- Фотография в статье: укажите размеры исходного файла, чтобы браузер знал его пропорции.
- Миниатюра или карточка: задайте размеры файла, а необходимое отображение настройте через CSS.
- Логотип: сохраните реальные пропорции, не растягивайте изображение ради заполнения блока.
- Изображение с обрезкой: если CSS использует
object-fit: cover, зарезервированная область может иметь другие пропорции; задайте их стилями осознанно.
Не подставляйте произвольные значения ради устранения сдвига: несоответствие пропорций может привести к искажению или к неожиданному поведению при отображении.
Как сохранить адаптивность изображений с CSS
Атрибуты фиксируют исходные пропорции, а CSS ограничивает размер картинки относительно доступной области. Для обычного адаптивного изображения подойдёт правило:
img {
max-width: 100%;
height: auto;
}
Преимущества такого подхода:
- изображение не выходит за границы узкого контейнера;
- пропорции сохраняются при изменении ширины экрана;
- HTML остаётся источником исходных размеров, а CSS задаёт поведение в макете.
Ограничения, которые стоит учитывать:
- если CSS задаёт одновременно ширину и высоту без сохранения пропорций, изображение может исказиться;
- для фиксированной по пропорциям обложки понадобится отдельная настройка области и, при необходимости, обрезки;
- правило
max-width: 100%не заменяет указаниеwidthиheightв HTML.
Когда размеры влияют на скорость отображения страницы
Разметка размеров помогает браузеру быстрее подготовить геометрию страницы, но не означает, что файл загрузится быстрее. При оптимизация скорости загрузки сайта важно отдельно оценивать вес изображений, формат, приоритет загрузки и поведение макета.
- Миф: добавление атрибутов уменьшает размер файла. На деле: они не меняют содержимое изображения.
- Ошибка: задавать размеры, не соответствующие пропорциям файла. Это может исказить изображение или создать неверно рассчитанную область.
- Ошибка: считать CSS-ширину полной заменой HTML-атрибутов. Для предварительного резервирования места браузеру нужны исходные пропорции.
- Ошибка: пытаться исправить атрибутами слишком тяжёлую картинку. Для этого нужна оптимизация изображений для сайта.
- Миф: размеры сами по себе обеспечивают ускорение сайта под ключ. Это один из приёмов работы с макетом, а не комплексная оптимизация.
При разработке сайтов под ключ размеры изображений стоит включать в проверку шаблонов и компонентов. Для оптимизация Core Web Vitals важно также проверять CLS на реальных страницах и отдельно разбирать причины сдвигов.
Практический пример разметки изображения без сдвига контента
Для исходного файла размером 1200 на 800 пикселей можно указать его пропорции в HTML, а ширину отображения ограничить стилями:
<img
src="/images/article-photo.webp"
alt="Рабочее пространство у окна"
width="1200"
height="800"
style="max-width: 100%; height: auto;"
>
Быстрые практические советы:
- проверьте, что значения
widthиheightсоответствуют пропорциям файла; - для адаптивной картинки используйте
max-width: 100%иheight: auto; - не путайте резервирование места с ускорением скачивания файла;
- после изменений проверьте, не сдвигается ли контент при загрузке изображения.
Разбор спорных случаев с размерами изображений
Нужно ли указывать width и height, если размеры заданы в CSS?
Да, если известны исходные пропорции изображения. CSS управляет отображением, а HTML помогает браузеру рассчитать место до загрузки файла.
Можно ли указать размеры меньше исходного файла?
Можно, если значения сохраняют пропорции. Однако атрибуты не заменяют подготовку изображения подходящего размера для отображения.
Что произойдёт, если указать неверную высоту?
Изображение может получить неправильные пропорции или область резервирования. Укажите корректное соотношение сторон и проверьте результат с учётом применённых стилей.
Означают ли атрибуты, что изображение будет показано в исходном размере?
Нет. CSS может уменьшить его до ширины контейнера или задать другое оформление. Атрибуты сообщают исходные размеры и пропорции.
Ускоряют ли width и height загрузку файла?
Нет, они не уменьшают вес файла и не меняют скорость его передачи. Их основная задача - помочь браузеру заранее рассчитать место в макете.
Нужно ли задавать размеры каждой картинке в HTML?
Для обычных изображений это полезная практика, если их пропорции известны. Она помогает избежать пустого или неверно рассчитанного места до загрузки.
Автор: Андрей Федотов