<img> HTML-элемент для встраивания изображений
Базовый уровень Широко доступно *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
* Некоторые части этой функции могут поддерживаться в разной степени.
Элемент <img> HTML встраивает изображение в документ.
Попробуйте
<img class="fit-picture" src="/shared-assets/images/examples/grapefruit-slice.jpg" alt="Grapefruit slice atop a pile of other slices" />
.fit-picture {
width: 250px;
}
В приведённом выше примере показано использование элемента <img>:
- Атрибут
srcсодержит путь к изображению, которое вы хотите встроить. Он не является обязательным, если доступен атрибут srcset. Однако необходимо указать хотя бы один из атрибутовsrcилиsrcset. - Атрибут
altсодержит текстовую замену изображения. Он обязателен и чрезвычайно полезен для обеспечения доступности: программы чтения с экрана зачитывают значение атрибута пользователям, чтобы те понимали, что изображено на картинке. Альтернативный текст также отображается на странице, если изображение не удаётся загрузить по какой-либо причине, например из-за сетевых ошибок, блокировки контента или устаревшей ссылки.
Для различных целей предусмотрено множество других атрибутов:
-
Управление источником перехода/CORS для обеспечения безопасности и конфиденциальности: см.
crossoriginиreferrerpolicy. - Используйте атрибуты
widthиheightвместе, чтобы задать собственный размер изображения и выделить для него место до загрузки, предотвращая смещение макета. - Подсказки для адаптивных изображений с помощью атрибутов
sizesиsrcset(см. также элемент<picture>и наше руководство по адаптивным изображениям).
Поддерживаемые форматы изображений
Стандарт HTML не определяет, какие форматы изображений необходимо поддерживать, поэтому пользовательские агенты могут поддерживать разные форматы.
Примечание: В руководстве по типам и форматам файлов изображений содержится подробная информация о форматах изображений и их поддержке веб-браузерами. В этом разделе приведён лишь краткий обзор!
В интернете чаще всего используются следующие форматы файлов изображений:
- APNG (анимированная переносимая сетевая графика) — хороший выбор для последовательностей анимации без потерь (GIF работает менее эффективно)
- AVIF (формат файлов изображений AV1) — хороший выбор как для изображений, так и для анимированных изображений благодаря высокой производительности.
- GIF (формат обмена графикой) — хороший выбор для простых изображений и анимации.
- JPEG (изображение Joint Photographic Experts Group) — хороший выбор для сжатия фотографий с потерями (на данный момент это самый популярный формат).
- PNG (переносимая сетевая графика) — хороший выбор для сжатия изображений без потерь (качество немного выше, чем у JPEG).
- SVG (масштабируемая векторная графика) — векторный формат изображений. Используйте его для изображений, которые должны точно отображаться в разных размерах.
- WebP (формат Web Picture) — отличный выбор как для изображений, так и для анимированных изображений
Рекомендуется использовать такие форматы, как WebP и AVIF, поскольку они обеспечивают гораздо более высокую производительность, чем PNG, JPEG и GIF, как для статичных, так и для анимированных изображений.
SVG по-прежнему остаётся рекомендуемым форматом для изображений, которые должны точно отображаться в разных размерах.
Ошибки загрузки изображений
Если при загрузке или отображении изображения возникает ошибка и для события error задан обработчик событий onerror, этот обработчик будет вызван. Это может произойти в нескольких случаях, в том числе:
- Атрибуты
srcилиsrcsetпусты ("") илиnull. srcURL совпадает с URL страницы, на которой сейчас находится пользователь.- Изображение повреждено, и это препятствует его загрузке.
- Метаданные изображения повреждены настолько, что невозможно определить его размеры, и размеры не заданы в атрибутах элемента
<img>. - Формат изображения не поддерживается пользовательским агентом.
Атрибуты
Этот элемент включает глобальные атрибуты.
alt-
Задаёт текст, который может заменить изображение на странице.
Примечание: Браузеры не всегда отображают изображения. Существует ряд ситуаций, в которых браузер может не отображать изображения, например:
- Невизуальные браузеры (например, используемые людьми с нарушениями зрения)
- Пользователь выбирает не отображать изображения (для экономии трафика или по соображениям конфиденциальности)
- Изображение недействительно или имеет неподдерживаемый формат
В этих случаях браузер может заменить изображение текстом из атрибута
altэлемента. По этим и другим причинам по возможности задавайте полезное значение дляalt.Если задать этому атрибуту пустую строку (
alt=""), это означает, что изображение не является важной частью содержимого (это декоративное изображение или пиксель отслеживания), и невизуальные браузеры могут не включать его в отрисовку. Визуальные браузеры также скроют значок сломанного изображения, если атрибутaltпуст и изображение не удалось отобразить.Этот атрибут также используется при копировании и вставке изображения в текст или сохранении связанного изображения в закладку.
attributionsrc-
Указывает, что браузер должен отправить заголовок
Attribution-Reporting-Eligibleвместе с запросом изображения.На стороне сервера это используется для отправки в ответе заголовка
Attribution-Reporting-Register-SourceилиAttribution-Reporting-Register-Trigger, чтобы зарегистрировать источник атрибуции на основе изображения или триггер атрибуции на основе изображения соответственно. Выбор заголовка ответа зависит от значения заголовкаAttribution-Reporting-Eligible, вызвавшего регистрацию.Соответствующее событие источника или триггера запускается, когда браузер получает ответ, содержащий файл изображения.
Примечание: Подробнее см. в API Attribution Reporting.
Можно задать две версии этого атрибута:
- Логическое значение, то есть только имя
attributionsrc. Это означает, что заголовокAttribution-Reporting-Eligibleнужно отправить на тот же сервер, на который указывает атрибутsrc. Это подходит, если регистрация источника атрибуции или триггера обрабатывается на том же сервере. При регистрации триггера атрибуции это свойство необязательно; если его не указать, будет использовано логическое значение. - Значение, содержащее один или несколько URL-адресов, например:
<img src="image-file.png" alt="My image file description" attributionsrc="https://a.example/register-source https://b.example/register-source" />Это полезно, если запрашиваемый ресурс находится на сервере, который вы не контролируете, или если вы хотите обрабатывать регистрацию источника атрибуции на другом сервере. В этом случае в качестве значения
attributionsrcможно указать один или несколько URL-адресов. При запросе ресурса заголовокAttribution-Reporting-Eligibleбудет отправлен на URL-адреса, указанные вattributionSrc, а также на источник ресурса. Затем эти URL-адреса могут ответить заголовкомAttribution-Reporting-Register-SourceилиAttribution-Reporting-Register-Trigger, чтобы завершить регистрацию.Примечание: Указание нескольких URL-адресов означает, что для одной функции можно зарегистрировать несколько источников атрибуции. Например, вы можете измерять успешность разных кампаний, для которых создаются разные отчёты на основе разных данных.
- Логическое значение, то есть только имя
crossorigin-
Указывает, следует ли получать изображение с помощью запроса CORS. Данные изображения, полученного в результате запроса CORS с включённым CORS, можно повторно использовать в элементе
<canvas>без пометки «загрязнено».Если атрибут
crossoriginне указан, отправляется запрос без CORS (без заголовка запросаOrigin), браузер помечает изображение как загрязнённое и ограничивает доступ к его данным, не позволяя использовать их в элементах<canvas>.Если атрибут
crossoriginуказан, отправляется запрос CORS (с заголовком запросаOrigin); однако если сервер не разрешает сайту-источнику доступ к данным изображения из другого источника (не отправляет заголовок ответаAccess-Control-Allow-Originили не включает источник сайта в отправляемый заголовок ответаAccess-Control-Allow-Origin), браузер блокирует загрузку изображения и записывает ошибку CORS в консоль инструментов разработчика.Допустимые значения:
anonymous-
Отправляется запрос CORS без учётных данных (то есть без файлов cookie, сертификатов X.509 и заголовка запроса
Authorization). use-credentials-
Запрос CORS отправляется со всеми учётными данными (то есть с файлами cookie, сертификатами X.509 и заголовком запроса
Authorization). Если сервер не разрешает передавать учётные данные сайту-источнику (не отправляет заголовок ответаAccess-Control-Allow-Credentials: true), браузер помечает изображение как загрязнённое и ограничивает доступ к его данным.
Если атрибут имеет недопустимое значение, браузеры обрабатывают его так, как если бы было указано значение
anonymous. Дополнительные сведения см. в разделе атрибуты настройки CORS. decoding-
Этот атрибут подсказывает браузеру, следует ли декодировать изображение вместе с отрисовкой остального содержимого DOM за один этап отображения, что выглядит более «правильно» (
sync), или сначала отрисовать и показать остальное содержимое DOM, а затем декодировать изображение и показать его позже (async). На практикеasyncозначает, что следующая отрисовка не ждёт декодирования изображения.При использовании
decodingна статических элементах<img>часто трудно заметить какой-либо эффект. Сначала они, скорее всего, будут отрисованы как пустые изображения, пока файлы изображений загружаются (из сети или кэша), а затем обрабатываются независимо, поэтому «синхронизация» обновлений содержимого менее заметна. Однако задержку отрисовки во время декодирования, хотя она часто и очень мала, можно измерить — даже если её трудно заметить невооружённым глазом. Более подробный анализ см. в статье Что на самом деле делает атрибут декодирования изображения? (tunetheweb.com, 2023).Использование разных типов
decodingможет привести к более заметным различиям при динамической вставке элементов<img>в DOM с помощью JavaScript — подробнее см.HTMLImageElement.decoding.Допустимые значения:
sync-
Синхронно декодировать изображение вместе с отрисовкой остального содержимого DOM и показать всё одновременно.
async-
Асинхронно декодировать изображение после отрисовки и отображения остального содержимого DOM.
auto-
Предпочтительный режим декодирования не задан; браузер выбирает наиболее подходящий для пользователя. Это значение используется по умолчанию.
elementtiming-
Помечает изображение для наблюдения с помощью API
PerformanceElementTiming. Указанное значение становится идентификатором наблюдаемого элемента изображения. См. также страницу атрибутаelementtiming. fetchpriority-
Задаёт подсказку относительно приоритета загрузки изображения. Допустимые значения:
high-
Загружать изображение с высоким приоритетом относительно других изображений.
low-
Загружать изображение с низким приоритетом относительно других изображений.
auto-
Не задавать предпочтительный приоритет загрузки. Это значение используется по умолчанию, если значение не указано или недопустимо.
height-
Внутренняя высота изображения в пикселях. Должна быть целым числом без единицы измерения.
Примечание: Указание
heightиwidthпозволяет браузеру вычислить соотношение сторон изображения до его загрузки. Это соотношение используется для резервирования места, необходимого для отображения изображения, что уменьшает или даже предотвращает сдвиг макета после загрузки и отрисовки изображения на экране. Уменьшение сдвигов макета — важная составляющая хорошего пользовательского опыта и производительности веб-страниц. ismap-
Этот логический атрибут указывает, что изображение является частью карты изображения на стороне сервера. В этом случае координаты точки, в которой пользователь щёлкнул изображение, отправляются на сервер.
loading-
Указывает, как браузер должен загружать изображение:
eager-
Загружает изображение немедленно, независимо от того, находится ли оно в данный момент в визуальной области просмотра (это значение используется по умолчанию).
lazy-
Откладывает загрузку изображения, пока оно не окажется на вычисленном браузером расстоянии от области просмотра.
Отложенная загрузка позволяет не тратить пропускную способность сети и хранилища на изображение до тех пор, пока не станет достаточно ясно, что оно понадобится. Это повышает производительность в большинстве типичных сценариев использования.
Для всех изображений рекомендуется явно задавать атрибуты
widthиheight, чтобы избежать сдвига макета, но для изображений с отложенной загрузкой это особенно важно. Такие изображения никогда не будут загружены, если они не пересекаются с видимой частью элемента, даже если их загрузка изменила бы это положение, поскольку незагруженные изображения имеютwidthиheight, равные0. Это ещё сильнее ухудшает пользовательский опыт, если содержимое, видимое в области просмотра, смещается во время чтения.Изображения с отложенной загрузкой, расположенные в визуальной области просмотра, могут быть ещё не видны в момент срабатывания события Window
load. Это происходит потому, что событие срабатывает с учётом изображений, загружаемых немедленно: изображения с отложенной загрузкой не учитываются, даже если при первоначальной загрузке страницы они находятся в визуальной области просмотра.Загрузка откладывается только при включённом JavaScript. Это мера защиты от отслеживания: если бы пользовательский агент поддерживал отложенную загрузку при отключённых сценариях, сайт всё равно мог бы отслеживать примерное положение прокрутки пользователя в течение сеанса, стратегически размещая изображения в разметке страницы, чтобы сервер мог отслеживать количество и время запросов изображений.
referrerpolicy-
Строка, указывающая, какой источник перехода использовать при загрузке ресурса:
-
no-referrer: ЗаголовокRefererотправляться не будет. -
no-referrer-when-downgrade: ЗаголовокRefererне будет отправлен источникам origin без TLS (HTTPS). -
origin: Отправляемый источник перехода будет ограничен источником исходной страницы: её схемой, хостом и портом. -
origin-when-cross-origin: Источник перехода, отправляемый другим источникам, будет ограничен схемой, хостом и портом. При переходах в пределах одного источника путь по-прежнему будет включён. -
same-origin: Для запросов к тому же источнику источник перехода будет отправлен, а в междоменных запросах сведения об источнике перехода отсутствуют. -
strict-origin: В качестве источника перехода отправляется только источник документа, если уровень безопасности протокола не меняется (HTTPS→HTTPS); при переходе к менее безопасному адресу (HTTPS→HTTP) он не отправляется. -
strict-origin-when-cross-origin(по умолчанию): При запросе к тому же источнику отправляется полный URL; если уровень безопасности протокола не меняется (HTTPS→HTTPS), отправляется только источник; при переходе к менее безопасному адресу (HTTPS→HTTP) заголовок не отправляется. -
unsafe-url: Источник перехода будет содержать источник и путь (но не фрагмент, пароль или имя пользователя). Это значение небезопасно, поскольку оно раскрывает источники и пути защищённых TLS ресурсов незащищённым источникам.
-
sizes-
Одно или несколько значений, разделённых запятыми; это могут быть размеры источника или ключевое слово
auto. Согласно спецификации, атрибутsizesдолжен присутствовать только тогда, когда вsrcsetиспользуются дескрипторы ширины.- размер источника
-
Размер источника состоит из следующего:
- Условие для медиазапроса, которое опускается для последнего элемента списка.
- Значение размера источника.
Например, следующий размер источника предлагает использовать изображение шириной
1000px, если ширина области просмотра составляет 500 пикселей или меньше.(width <= 500px) 1000px
Условия медиазапросов описывают свойства области просмотра, а не изображения. Поскольку дескриптор размера источника задаёт ширину изображения при компоновке, условие медиазапроса обычно (но не обязательно) основывается на
width.Значения размера источника задают предполагаемый размер отображения изображения. Пользовательские агенты используют текущий размер источника, чтобы выбрать один из источников, заданных атрибутом
srcset, если эти источники описаны дескрипторами ширины (w). Значениеw, заданное в sizes, определяет ширину изображения по умолчанию при компоновке. Если CSS отсутствует, браузер отображает изображение с этим размером независимо от физических размеров в пикселях загруженного файла.Значением размера источника может быть любая неотрицательная длина. Нельзя использовать функции CSS, кроме математических функций. Единицы измерения интерпретируются так же, как в медиазапросах: все относительные единицы длины отсчитываются от корневого элемента документа, а не от элемента
<img>. Например, значениеemотсчитывается от корневого размера шрифта, а не от размера шрифта изображения. Значения процентов не допускаются. Если атрибутsizesне указан, его значение по умолчанию —100vw(ширина области просмотра). auto-
Ключевое слово
autoуказывает, что браузер должен использовать ожидаемую ширину элемента после компоновки для выбора отображаемого изображения. То есть следует использовать фактический размер изображения, вычисленный после применения HTML и CSS при компоновке. Это допустимо только в сочетании сloading="lazy", поскольку предполагается, что к моменту загрузки изображения страница уже содержит CSS и другие сведения о компоновке.Использование
autoизбавляет от необходимости дважды указывать условия медиазапросов для компоновки: один раз для самой компоновки, а другой — для выбора подходящего изображения для загрузки и отображения.Если
autoне удаётся определить — потому что браузер не поддерживает это значение или потому что размер изображения при компоновке ещё неизвестен, — браузер использует указанные в списке размеры источника, чтобы определить ширину, затем атрибутыwidth/heightэлемента и, наконец, внутренний размер по умолчанию для элементов<img>, заданный в таблице стилей пользовательского агента (300 × 150 пикселей).Для лучшей обратной совместимости с браузерами, не поддерживающими
auto, послеautoможно указать резервные размеры в атрибутеsizes. Также следует задать атрибутыwidthиheightэлемента, соответствующие внутренним размерам наибольшего изображения вsrcset, чтобы браузер мог зарезервировать место с правильным соотношением сторон:<img loading="lazy" width="200" height="200" sizes="auto, (max-width: 30em) 100vw, (max-width: 50em) 50vw, calc(33vw - 100px)" srcset=" swing-200.jpg 200w, swing-400.jpg 400w, swing-800.jpg 800w, swing-1600.jpg 1600w " src="swing-400.jpg" alt="Kettlebell Swing" />
src-
URL изображения. Для элемента
<img>требуется указать как минимум один из атрибутовsrcиsrcset. Если указан атрибутsrcset,srcиспользуется одним из двух способов:- как резервный вариант для браузеров, не поддерживающих
srcset; - если в
srcsetиспользуется дескриптор «x», тоsrcэквивалентен источнику с дескриптором плотности1x; то есть изображение, указанное вsrc, используется на экранах с низкой плотностью пикселей (например, на обычных дисплеях с разрешением 72 или 96 точек на дюйм).
- как резервный вариант для браузеров, не поддерживающих
srcset-
Одна или несколько строк, разделённых запятыми, которые указывают возможные источники изображений для использования пользовательским агентом.
Каждая строка состоит из следующего:
- URL изображения
- При необходимости — пробел и одно из следующих значений:
- Дескриптор ширины (положительное целое число, за которым непосредственно следует
w). Он должен соответствовать внутренней ширине указанного изображения. Дескриптор ширины делится на размер источника, заданный в атрибутеsizes, чтобы вычислить эффективную плотность пикселей. Например, чтобы указать ресурс изображения для случая, когда механизму отрисовки нужно изображение шириной 450 пикселей, используйте дескриптор ширины450w. Если атрибутsrcsetсодержит дескрипторы «w», браузер использует эти дескрипторы вместе с атрибутомsizesдля выбора ресурса. - Дескриптор плотности пикселей (положительное число с плавающей запятой, за которым непосредственно следует
x). Он задаёт условие плотности пикселей дисплея, при котором следует использовать соответствующий ресурс изображения. Например, чтобы указать ресурс изображения для случая, когда плотность пикселей вдвое выше стандартной, используйте дескриптор плотности пикселей2xили2.0x.
- Дескриптор ширины (положительное целое число, за которым непосредственно следует
Если дескриптор не указан, источнику присваивается дескриптор по умолчанию
1x. Использовать дескрипторы ширины и плотности пикселей одновременно в одном атрибутеsrcsetнельзя. Повторяющиеся дескрипторы (например, два источника в одномsrcset, оба с дескриптором2x) также недопустимы.Пробельные символы, за исключением пробела между URL и соответствующим дескриптором условия, игнорируются; это относится к пробелам в начале и в конце, а также к пробелам до и после каждой запятой. Однако если строка кандидата изображения не содержит дескрипторов и после URL нет пробелов, следующая строка кандидата изображения (если она есть) должна начинаться с одного или нескольких пробельных символов, иначе запятая будет считаться частью URL.
Если в элементе
<img>атрибутsrcsetиспользует дескрипторыx, браузеры также рассматривают URL из атрибутаsrc(если он указан) как возможный вариант и присваивают ему дескриптор по умолчанию1x. Если же в атрибутеsrcsetиспользуются дескрипторы ширины,srcне учитывается, а вместо него используется атрибутsizes.Пользовательский агент выбирает любой из доступных источников по своему усмотрению. Это даёт ему значительную свободу при выборе с учётом таких факторов, как предпочтения пользователя или условия пропускной способности. Пример см. в руководстве Адаптивные изображения.
width-
Внутренняя ширина изображения в пикселях. Должна быть целым числом без единицы измерения.
usemap-
Частичный URL (начинающийся с
#) карты изображения, связанной с элементом.
Устаревшие атрибуты
align-
Выравнивает изображение относительно окружающего содержимого. Вместо этого атрибута используйте свойства CSS
floatи/илиvertical-align. Допустимые значения:top-
Эквивалентно
vertical-align: topилиvertical-align: text-top middle-
Эквивалентно
vertical-align: -moz-middle-with-baseline bottom-
Значение по умолчанию, эквивалентно
vertical-align: unsetилиvertical-align: initial left-
Эквивалентно
float: left right-
Эквивалентно
float: right
border-
Ширина рамки вокруг изображения. Вместо этого используйте свойство CSS
border. hspace-
Количество пикселей пустого пространства слева и справа от изображения. Вместо этого используйте свойство CSS
margin. longdesc-
Ссылка на более подробное описание изображения. Допустимыми значениями являются URL или
idэлемента.Примечание: Этот атрибут считается устаревшим в спецификации HTML. Его будущее неопределённо; авторам следует использовать альтернативу на основе WAI-ARIA, например
aria-describedbyилиaria-details. name-
Имя элемента. Вместо этого используйте атрибут
id. vspace-
Количество пикселей пустого пространства над и под изображением. Вместо этого используйте свойство CSS
margin.
Стилизация с помощью CSS
<img> — это замещаемый элемент; по умолчанию его значение display равно inline, но его размеры по умолчанию определяются внутренними значениями встроенного изображения, как если бы это был элемент inline-block. Для изображения можно задавать такие свойства, как border/border-radius, padding/margin, width, height и другие.
<img> не имеет базовой линии, поэтому при использовании изображений во встроенном контексте форматирования с vertical-align: baseline нижняя граница изображения будет расположена на базовой линии текста.
Свойство object-position позволяет позиционировать изображение внутри блока элемента, а свойство object-fit — настраивать размер изображения внутри блока (например, определять, должно ли изображение вписываться в блок или заполнять его, даже если для этого потребуется обрезка).
В зависимости от типа изображение может иметь собственные ширину и высоту. Однако для некоторых типов изображений собственные размеры не нужны. Например, изображения SVG не имеют собственных размеров, если для корневого элемента <svg> не заданы width или height.
Доступность
>Создание содержательных альтернативных описаний
Значение атрибута alt должно быть ясной и краткой текстовой заменой содержимого изображения. Оно не должно описывать само наличие изображения или имя файла изображения. Если атрибут alt намеренно не указан, поскольку у изображения нет текстового эквивалента, рассмотрите альтернативные способы передачи смысла, который должно донести изображение.
Не делайте так
<img alt="image" src="penguin.jpg" />
Делайте так
<img alt="A Penguin on a beach." src="penguin.jpg" />
Важная проверка доступности — прочитать содержимое атрибута alt вместе с предшествующим текстом и убедиться, что оно передаёт тот же смысл, что и изображение. Например, если перед изображением стоит предложение «Во время путешествий я увидел милое маленькое животное:», пример из раздела «Не делайте так» программа чтения с экрана может озвучить как «Во время путешествий я увидел милое маленькое животное: изображение», что не имеет смысла. Пример из раздела «Делайте так» программа чтения с экрана может озвучить как «Во время путешествий я увидел милое маленькое животное: пингвин на пляже», что имеет смысл.
Для изображений, используемых для запуска действия, например изображений, вложенных в элемент <a> или <button>, рассмотрите возможность описать запускаемое действие в значении атрибута alt. Например, можно написать alt="next page" вместо alt="arrow right". Также можно добавить дополнительное описание в атрибут title; программы чтения с экрана могут озвучить его, если пользователь запросит это.
Если у изображения отсутствует атрибут alt, некоторые программы чтения с экрана могут объявить имя файла изображения. Это может сбить с толку, если имя файла не отражает содержимое изображения.
- Дерево решений для alt-текста • Изображения • Учебные материалы WAI по веб-доступности
- Alt-тексты: полное руководство — Axess Lab
- Как создать отличный alt-текст: введение | Deque
- MDN: понимание WCAG, пояснения к руководству 1.1
- Понимание критерия успеха 1.1.1 | W3C: понимание WCAG 2.0
Обозначение SVG как изображения
Из-за ошибки VoiceOver VoiceOver неправильно объявляет SVG-изображения как изображения. Добавьте role="img" ко всем элементам <img> с исходными файлами SVG, чтобы вспомогательные технологии правильно объявляли SVG-содержимое как изображение.
<img src="mdn.svg" alt="MDN" role="img" />
Атрибут title
Атрибут title не является приемлемой заменой атрибуту alt. Кроме того, не следует дублировать значение атрибута alt в атрибуте title, указанном для того же изображения. В результате некоторые программы чтения с экрана могут дважды озвучить один и тот же текст, что может сбить пользователя с толку.
Атрибут title также не следует использовать для дополнительной подписи к описанию изображения в атрибуте alt. Если изображению нужна подпись, используйте элементы figure и figcaption.
Значение атрибута title обычно отображается пользователю в виде всплывающей подсказки, которая появляется вскоре после того, как курсор перестаёт двигаться над изображением. Хотя это может предоставить пользователю дополнительную информацию, не следует рассчитывать, что пользователь обязательно её увидит: он может использовать только клавиатуру или сенсорный экран. Если информация особенно важна или ценна для пользователя, покажите её непосредственно одним из описанных выше способов, а не используйте title.
Примеры
>Альтернативный текст
В следующем примере изображение добавляется на страницу вместе с альтернативным текстом для обеспечения доступности.
<img src="/shared-assets/images/examples/favicon144.png" alt="MDN" />
Ссылка-изображение
Этот пример основан на предыдущем и показывает, как превратить изображение в ссылку. Для этого вложите тег <img> в элемент <a>. Альтернативный текст должен описывать ресурс, на который ведёт ссылка, как если бы вместо изображения использовалась текстовая ссылка.
<a href="https://developer.mozilla.org">
<img
src="/shared-assets/images/examples/favicon144.png"
alt="Visit the MDN site" />
</a>
Использование атрибута srcset
В этом примере мы указываем атрибут srcset со ссылкой на версию логотипа с высоким разрешением; на устройствах с высоким разрешением она будет загружена вместо изображения src. Изображение, указанное в атрибуте src, считается кандидатом 1x в пользовательских агентах, поддерживающих srcset.
<img src="/shared-assets/images/examples/favicon72.png" alt="MDN" srcset="/shared-assets/images/examples/favicon144.png 2x" />
Использование атрибутов srcset и sizes
Атрибут src игнорируется в пользовательских агентах, поддерживающих srcset, если указаны дескрипторы w. Когда медиавыражение (width <= 600px) соответствует условию, загружается изображение шириной 200 пикселей (оно наиболее точно соответствует 200px); в противном случае загружается другое изображение.
<img src="clock-demo-200px.png" alt="The time is 12:45." srcset="clock-demo-200px.png 200w, clock-demo-400px.png 400w" sizes="(width <= 600px) 200px, 50vw" />
Примечание: Чтобы увидеть изменение размера в действии, откройте пример на отдельной странице — так вы сможете изменить размер области содержимого.
Вопросы безопасности и конфиденциальности
Хотя элементы <img> могут использоваться безобидным образом, они могут иметь нежелательные последствия для безопасности и конфиденциальности пользователей. Дополнительную информацию и способы устранения проблем см. в разделе Заголовок Referer: вопросы конфиденциальности и безопасности.
Техническая сводка
| Категории содержимого | Потоковое содержимое, фразовое содержимое, встроенное содержимое, осязаемое содержимое. Если у элемента есть атрибут usemap, он также относится к категории интерактивного содержимого. |
|---|---|
| Допустимое содержимое | Отсутствует: это пустой элемент. |
| Опускание тегов | Должен иметь открывающий тег и не должен иметь закрывающего тега. |
| Допустимые родительские элементы | Любой элемент, допускающий встроенное содержимое. |
| Неявная роль ARIA |
|
| Допустимые роли ARIA |
|
| DOM-интерфейс | HTMLImageElement |
Спецификации
| Спецификация |
|---|
| HTML> # the-img-element> |
Совместимость с браузерами
| Компьютер | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari в iOS | Samsung Internet | Android WebView | WebView в iOS | |
img |
1≤37 | 1215 | 1≤32 | 15≤24 | 15.1 | 18≤37 | 4≤32 | 14≤24 | 15 | 1.0≤3.0 | 4.4≤37 | 15 |
align |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
alt |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
aspect_ratio_computed_from_attributes |
79 | 79 | 71 | 66 |
1514–15Safari не сохраняет место для изображений без действительногоsrc, что может нарушить макеты, использующие отложенную загрузку (см. ошибку 224197). |
79 | 79 | 57 |
1514–15Safari в iOS не сохраняет место для изображений без действительногоsrc, что может нарушить макеты, использующие отложенную загрузку (см. ошибку 224197). |
12.0 | 79 |
1514–15WebView в iOS не сохраняет место для изображений без действительногоsrc, что может нарушить макеты, использующие отложенную загрузку (см. ошибку 224197). |
attributionsrc |
125 | 125 | Нет | 111 | Нет | 125 | Нет | 83 | Нет | 27.0 | 125 | Нет |
border |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
crossorigin |
13 | 12 | 8 | 15 | 6 | 18 | 8 | 14 | 6 | 1.0 | 4.4 | 6 |
decoding |
65 | 79 | 63 | 52 | 11.1 | 65 | 63 | 47 | 11.3 | 9.0 | 65 | 11.3 |
fetchpriority |
101 | 101 | 132 | 87 | 17.2 | 101 | 132 | 70 | 17.2 | 19.0 | 101 | 17.2 |
height |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
hspace |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
ismap |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
loading |
77 | 79 | 75 | 64 | 15.4 | 77 | 79 | 55 | 15.4 | 12.0 | 77 | 15.4 |
longdesc |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
name |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
referrerpolicy |
51 | 79 | 50 | 38 | 14 | 51 | 50 | 41 | 14 | 7.2 | 51 | 14 |
sizes |
38 | 12 | 38 | 25 | 9.1 | 38 | 38 | 25 | 9.3 | 3.0 | 38 | 9.3 |
src |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 | 1 |
srcset |
34 | 12 | 38 | 21 | 8 | 34 | 38 | 21 | 8 | 2.0 | 37 | 8 |
usemap |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
vspace |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
width |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 | 2 |
См. также
-
элементы
<picture>,<object>и<embed> -
object-fit,object-position,image-orientation,image-renderingиimage-resolution: свойства CSS, связанные с изображениями. -
HTMLImageElement— интерфейс этого элемента - Изображения в HTML
- Руководство по типам и форматам файлов изображений
- Адаптивные изображения
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img