Перейти к содержимому

Тег HTML <img>

Тег <img> используется для вставки изображения в HTML-документ. Само изображение не вставляется непосредственно в документ — браузер вставляет HTML-изображение из источника, указанного в теге <img>.

HTML img tag

Для элемента <img> обязательны два атрибута: src, который используется для указания источника изображения, и alt, который задаёт альтернативный текст для изображения.

Чтобы сделать HTML-изображения кликабельными, поместите тег <img> внутрь тега <a>, который используется для вставки ссылки на HTML-изображение.

Синтаксис

Тег <img> является пустым, то есть закрывающий тег не требуется. Он содержит только атрибуты. Но в XHTML тег <img> должен быть самозакрывающимся (<img />).

Пример тега HTML <img>:

Пример использования тега HTML <img>

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <h1>Heading </h1>
    <p>This is Aleq's photo</p>
    <img src="https://ru.w3docs.com/uploads/media/default/0001/01/25acddb3da54207bc6beb5838f65f022feaa81d7.jpeg" alt="Aleq" width="200" height="185"/>
  </body>
</html>

Мы можем использовать CSS, чтобы изменить начальный вид изображения.

Пример тега <img>, стилизованного с помощью CSS:

Как стилизовать тег HTML <img> с помощью CSS-свойств vertical-align и padding?

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      img {
      border-radius: 50%;
      border: 4px dashed #077cb9;
      width: 300px;
      display: block;
      margin: 0 auto;
      }
    </style>
  </head>
  <body>
    <div>
     <img src="https://ru.w3docs.com/uploads/media/default/0001/03/e91b0d7a957cadd0c3282d34e423ff0f97799a1d.jpeg" alt="Ararat mountain" width="256" height="256" />
    </div>
  </body>
</html>

Атрибуты Src и Alt

Атрибут src (source) показывает источник изображения. Он обязателен, так как задаёт путь к изображению. Значением атрибута src может быть либо имя файла, либо его URL.

Атрибут alt задаёт альтернативное имя для изображения. Он также обязателен для тега <img>. Его значение — это описательный текст, который отображается в браузере до загрузки изображения или если изображение не удалось загрузить.

TIP

Мы рекомендуем включать ключевые слова в альтернативный текст. Это улучшит ранжирование сайта в поисковых системах.

Использование "data:image/[type];base64,[base64-string]" для атрибута src

Формат data:image/[type];base64,[base64-string] можно использовать как значение атрибута src тега img, чтобы отображать изображение прямо из HTML-кода, без необходимости загружать его из внешнего файла.

Вот пример того, как использовать этот формат для отображения изображения в теге img:

Использование "data:image/[type];base64,[base64-string]" для атрибута src

html
<img src="data:image/png;base64,iVBORw0KG..." alt="Base64 encoded image">

В этом примере image/png указывает MIME-тип изображения, а iVBORw0KG... представляет данные изображения, закодированные в base64.

Обратите внимание, что использование изображений, закодированных в base64, может увеличить размер HTML-файла и замедлить загрузку страницы. Обычно этот формат рекомендуется использовать для небольших изображений или иконок, а для более крупных изображений — внешние файлы.

Пример тега HTML <img> с атрибутами src и alt:

Пример тега img с атрибутами src и alt

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <img src="https://ru.w3docs.com/uploads/media/default/0001/03/01cc5ccf0ce755075e468cc651f27c354e1b032e.jpeg" alt="Paris" width="256" height="256" />
  </body>
</html>

Атрибут loading

Атрибут loading позволяет откладывать загрузку изображений и iframe до тех пор, пока они не окажутся близко к отображению. Сейчас это стандартная возможность HTML, поддерживаемая всеми современными браузерами.

Поддерживаемые значения атрибута loading включают:

  • lazy, который откладывает загрузку, пока изображение или iframe не достигнет порогового расстояния от области просмотра.
  • eager, который загружает ресурс немедленно.

Вы можете использовать значение lazy, чтобы воспользоваться встроенной в браузер отложенной загрузкой:

HTML <img> Tag

html
<img src="defer.png" loading="lazy" alt="Beautiful" width="500" height="400">

Отложенная загрузка — это набор техник в веб- и прикладной разработке, которые переносят загрузку ресурсов на странице на более поздний момент, когда эти ресурсы действительно нужны, вместо их немедленной загрузки. Эти техники помогают повысить производительность и эффективность использования ресурсов устройства, снижая связанные с этим затраты.

Поддерживаемые форматы изображений

Форматы файлов изображений — это стандартизированные способы организации и хранения цифровых изображений. Формат файла изображения может хранить данные в несжатом виде, в сжатом виде (без потерь или с потерями) или в векторном формате. (Wikipedia).

Каждый пользовательский агент поддерживает разные форматы изображений. Вот список распространённых форматов изображений:

AbbreviationFile formatMIME typeFile extension(s)Browser compatibility
APNGAnimated Portable Network Graphicsimage/apng.apngChrome, Edge, Firefox, Opera, Safari
BMPBitmap fileimage/bmp.bmpChrome, Edge, Firefox, Opera, Safari
GIFGraphics Interchange Formatimage/gif.gifChrome, Edge, Firefox, Opera, Safari
ICOMicrosoft Iconimage/x-icon.ico, .curChrome, Edge, Firefox, Opera, Safari
JPEGJoint Photographic Expert Group imageimage/jpeg.jpg, .jpeg, .jfif, .pjpeg, .pjpChrome, Edge, Firefox, Opera, Safari
PNGPortable Network Graphicsimage/png.pngChrome, Edge, Firefox, Opera, Safari
SVGScalable Vector Graphicsimage/svg+xml.svgChrome, Edge, Firefox, Opera, Safari
TIFFTagged Image File Formatimage/tiff.tif, .tiffNone built-in; add-ons required
WebPWeb Picture formatimage/webp.webpChrome, Edge, Firefox, Opera

Ошибки загрузки изображений

При загрузке изображения могут возникать некоторые ошибки. Если для события error задан обработчик события onerror, он будет вызван. Здесь вы можете найти ситуации, когда это может произойти:

  • Атрибут src пустой ("") или равен null.
  • URL из src и URL страницы, на которой в данный момент находится пользователь, совпадают.
  • Некоторое повреждение изображения мешает его загрузке.
  • Метаданные изображения повреждены таким образом, что невозможно получить его размеры, и при этом в атрибутах тега <img> не указаны размеры.
  • Формат не поддерживается пользовательским агентом.

Атрибуты

AttributeValueDescription
alignleft right top bottom middleОпределяет выравнивание изображения относительно окружающих элементов. Не поддерживается в HTML5.
alttextОпределяет альтернативный текст для изображения.
borderpixelsОпределяет ширину рамки вокруг изображения. Не поддерживается в HTML5.
crossoriginanonymous | use-credentialsОпределяет, используется ли CORS при загрузке изображения. Изображения, загруженные через CORS, можно использовать в элементе <canvas> без ограничения его функциональности.
heightpixelsОпределяет высоту изображения.
hspacepixelsОпределяет отступы слева и справа от изображения. Не поддерживается в HTML5.
ismapismapУказывает, что содержимое тега является серверной картой изображения.
longdescURLУказывает URL-адрес с подробным описанием изображения (для краткого описания изображения используйте атрибут alt). Не поддерживается в HTML5.
srcURLОпределяет источник изображения.
usemap#mapnameУказывает ссылку на элемент <map>, который содержит координаты для клиентской карты изображения.
vspacepixelsОпределяет отступы сверху и снизу изображения. Не поддерживается в HTML5.
widthpixelsОпределяет ширину изображения.

Тег <img> поддерживает глобальные атрибуты и атрибуты событий.

Устаревшие атрибуты

AttributeValuesDescriptionAlternate
alignleft right top bottom middleОпределяет выравнивание изображения относительно окружающих элементов.Центрирует HTML-изображение относительно окружающих элементов.Свойства CSS float и/или vertical-align.
borderpixelsОпределяет ширину рамки вокруг изображения.Свойство CSS border.
hspaceВместо этого используйте свойство CSS margin.
nameУказывает имя элементаАтрибут id.
vspacepixelsОпределяет отступы сверху и снизу изображения.Вместо этого используйте свойство CSS margin.

Практика

Какие атрибуты можно использовать с тегом HTML <img>?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.