From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- files/ru/web/html/element/img/index.html | 388 +++++++++++++++++++++++++++++++ 1 file changed, 388 insertions(+) create mode 100644 files/ru/web/html/element/img/index.html (limited to 'files/ru/web/html/element/img') diff --git a/files/ru/web/html/element/img/index.html b/files/ru/web/html/element/img/index.html new file mode 100644 index 0000000000..d21362cce8 --- /dev/null +++ b/files/ru/web/html/element/img/index.html @@ -0,0 +1,388 @@ +--- +title: +slug: Web/HTML/Element/img +tags: + - Element + - HTML + - Web + - Веб + - Графика + - Изображение + - Картинки + - Справка + - Фотографии + - Элемент + - мультимедиа +translation_of: Web/HTML/Element/img +--- +
{{HTMLRef}}
+ +

HTML-элемент <img> встраивает изображение в документ. Это замещаемый элемент.

+ +
{{EmbedInteractiveExample("pages/tabbed/img.html", "tabbed-standard")}}
+ + + +

Приведенный выше пример показывает очень простое использование элемента <img>. Атрибут src обязателен и содержит путь к изображению, которое вы хотите встроить в документ. Атрибут alt содержит текстовое описание изображения, которое не обязательно, но невероятно полезно для доступности — программы чтения с экрана читают это описание своим пользователям, так они знают какое изображение показано, и так же оно отображается на странице, если изображение не может быть загружено по какой-либо причине.

+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Категории контентаПотоковый контент, фразовый контент, встроенный контент, явный контент. Если элемент имеет атрибут usemap, он так же принадлежит к категории интерактивного контента.
Разрешенное содержимоеНикакое, так как это {{Glossary("empty element", "пустой элемент")}}.
Пропуск тегаДолжен иметь открывающий тег и не должен иметь закрывающий.
Разрешенные родительские элементыЛюбой элемент, который разрешает встроенный контент в качестве содержимого.
Разрешённые роли ARIAЛюбые
DOM-интерфейс{{domxref("HTMLImageElement")}}
+ +

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

+ +

Стандарт HTML не содержит списка форматов изображений, которые должны поддерживаться. Поэтому разные {{glossary("user agent","пользовательские агенты")}} поддерживают разные наборы форматов.

+ +

Firefox

+ +

Форматы изображений, поддерживаемые Firefox:

+ + + +

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

+ +

Если ошибка происходит во время загрузки или отрисовки изображения и обработчик события {{htmlattrxref("onerror")}} был настроен на обработку события {{event("error")}}, тогда этот обработчик события будет вызван. Это может произойти в ряде ситуаций, в том числе когда:

+ + + +

Атрибуты

+ +

К этому элементу применимы глобальные атрибуты.

+ +
+
{{htmlattrdef("alt")}}
+
+

Этим атрибутом задается альтернативное текстовое описание изображения.

+ +
+

Заметка: Браузеры не всегда отображают изображение на которое ссылается элемент. Это относится к неграфическим браузерам (включая те, которые используются людьми с нарушениями зрения), если пользователь решает не отображать изображения, или если браузер не может отобразить изображение, потому что оно имеет неверный или неподдерживаемый тип. В этих случаях браузер может заменить изображение текстом записанным в атрибуте alt элемента. По этим и другим причинам вы должны по возможности предоставлять полезное описание в атрибуте alt.

+
+ +
+

Заметка: Пропуст этого атрибута в целом указывает, что изображение является ключевой частью контента и текстовый эквивалент не доступен. Установка этого атрибута в значение пустой строки (alt="") указывает, что это изображение не является ключевой частью контента (декоративное), и что невизуальные браузеры могут пропустить его при {{glossary("Rendering engine", "рендеринге")}}.

+
+
+
{{htmlattrdef("crossorigin")}}
+
+

Этот атрибут указывает, следует ли использовать {{glossary("CORS")}} при загрузке изображения или нет. Изображения с включенной поддержкой CORS могут быть повторно использованы в элементе {{HTMLElement("canvas")}} не будучи "испорченными". Допустимые значения:

+ +
    +
  • anonymous: Запрос cross-origin (т.е. с HTTP-заголовком {{httpheader("Origin")}}) выполняется, но параметры доступа не передаются (т.е. нет {{glossary("cookie")}}, не используется стандарт X.509 или базовая HTTP-аутентификация). Если сервер не предоставляет параметры доступа исходному сайту (не устанавливая HTTP-заголовок {{httpheader("Access-Control-Allow-Origin")}}), изображение будет "испорчено" и его использование будет ограничено;
  • +
  • use-credentials: Запрос cross-origin (т.е. с HTTP-заголовком {{httpheader("Origin")}}) выполняется вместе с передачей параметров доступа (т.е. есть {{glossary("cookie")}}, используется стандарт X.509 или базовая HTTP-аутентификация). Если сервер не предоставляет параметры доступа исходному сайту (посредством HTTP-заголовка {{httpheader("Access-Control-Allow-Origin")}}), изображение будет "испорчено" и его использование будет ограничено.
  • +
+ +

Если этот атрибут не задан, то CORS при загрузке изображения не используется (т.е. без отправки HTTP-заголовка {{httpheader("Origin")}}), ограничивая его использование в элементе {{HTMLElement("canvas")}}. Если задан неправильно, то он обрабатывается так, как если бы использовалось значение anonymous. Для получения дополнительной информации смотрите "Настройки атрибутов CORS".

+
+
{{htmlattrdef("decoding")}}
+
+

Предоставляет рекомендации браузеру по декодированию изображения. Допустимые значения:

+ +
    +
  • sync: Декодировать изображение синхронно для одновременного отображения с другим контентом;
  • +
  • async: Декодировать изображение асинхронно, чтобы уменьшить задержку отображения другого контента;
  • +
  • auto: Режим по умолчанию, который указывает на отсутствие предпочтений к режиму декодирования. Браузер решает, что лучше для пользователя.
  • +
+
+
{{htmlattrdef("height")}}
+
Внутренняя высота (см. {{glossary("Intrinsic size", "Внутренний размер")}}) изображения в пикселях.
+
{{htmlattrdef("importance")}} {{experimental_inline}}
+
+

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

+ +
    +
  • auto: Указывает на отсутствие предпочтений. Браузер может использовать собственную эвристику для определения приоритета изображения;
  • +
  • high: Указывает браузеру, что изображение имеет высокий приоритет;
  • +
  • low: Указывает браузеру, что изображение имеет низкий приоритет.
  • +
+
+
{{htmlattrdef("intrinsicsize")}} {{experimental_inline}}
+
Этот атрибут говорит браузеру игнорировать действительный {{glossary("Intrinsic size", "внутренний размер")}} изображения и делать вид, что это размер, указанный в атрибуте. В частности, изображение будет растровым в этих измерениях, а narutalWidth/naturalHeight изображения будут возвращать значения, указанные в этом атрибуте. Объяснение, примеры.
+
{{htmlattrdef("ismap")}}
+
+

Это атрибут логического типа, указывающий, что изображение является частью серверной карты ссылок. Если это так, то точные координаты клика отправляются на сервер.

+ +
+

Заметка: Этот атрибут разрешен, только если элемент <img> является потомком элемента {{htmlelement("a")}} с валидным (соответствующий требованиям) атрибутом {{htmlattrxref("href","a")}}.

+
+
+
{{htmlattrdef("referrerpolicy")}} {{experimental_inline}}
+
+

Строка, указывающая, какой реферер (referrer) использовать при выборке ресурсов:

+ +
    +
  • no-referrer: Заголовок {{httpheader("Referer")}} не будет отправлен;
  • +
  • no-referrer-when-downgrade: Заголовок {{httpheader("Referer")}} не отправляется, когда происходит переход к источнику без {{glossary("TLS")}} ({{glossary("HTTPS")}}). Это поведение по умолчанию для {{glossary("user agent", "пользовательских агентов")}}, если не указано иное;
  • +
  • origin: Заголовок {{httpheader("Referer")}} будет содержать схему адресации ресурса (HTTP, HTTPS, {{glossary("FTP")}} и т.д), {{glossary("host", "хост")}} и {{glossary("port", "порт")}};
  • +
  • origin-when-cross-origin: Переход на другие источники ограничит включенные реферальные данные схемой адресации ресурса, {{glossary("host", "хостом")}} и {{glossary("port", "портом")}}, в то время как переход из того же источника будет включать полный путь реферала;
  • +
  • unsafe-url: Заголовок {{httpheader("Referer")}} будет включать источник и путь, но не фрагмент {{glossary("URL")}}, пароль или имя пользователя. Этот метод небезопасен, потому что будет утечка источников и путей от ресурсов, защищенных {{glossary("TLS")}}, к незащищенным источникам.
  • +
+
+
{{htmlattrdef("sizes")}}
+
+

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

+ +
    +
  1. Условия меда-запроса. Оно должно быть пропущено для последнего элемента.
  2. +
  3. Значения размера источника.
  4. +
+ +

Значения размера источника устанавливаются исходя из предполагаемых размеров изображения. {{glossary("user agent", "Пользовательские агенты")}} используют текущий размер источника, чтобы выбрать один из источников, предоставленных атрибутом srcset, если эти источники описываются с помощью дескриптора ширины 'w' (сокращение от width). Выбранный размер источника влияет на {{glossary("intrinsic size", "внутренний размер")}} изображения (отображаемый размер изображения, если не применены стили CSS). Если атрибут srcset отсутствует или не содержит значений с дискриптором 'w', то атрибут sizes не будет иметь никакого эффекта.

+
+
{{htmlattrdef("src")}}
+
{{glossary("URL")}} изображения. Этот атрибут является обязательным для элемента <img>. В браузерах, поддерживающих srcset, src обрабатывается как изображение-кандидат с дескриптором плотности пикселей 1x, если только изображение с этим дескриптором уже не определено в srcset или если srcset не содержит дескрипторы 'w'.
+
{{htmlattrdef("srcset")}}
+
+

Список из одной или нескольких строк, разделенных запятыми, указывающих набор возможным источников изображения для использования {{glossary("user agent", "пользовательскими агентами")}}. Каждая строка состоит из:

+ +
    +
  1. {{glossary("URL")}} изображения.
  2. +
  3. Необязательного, пробела, сопровождаемого: +
      +
    • дескриптором ширины или положительным целым числом, за которым сразу же следует 'w'. Дескриптор ширины делится на размер источника, полученный из атрибута sizes, для расчета эффективной плотности пикселей;
    • +
    • дескриптором плотности пикселей, который является положительным числом с плавающей точкой за которым сразу же следует 'x'.
    • +
    +
  4. +
+ +

Если не указано ни одного дескриптора, то источнику присваивается дескриптор по умолчанию: 1x.

+ +

Нельзя смешивать дескрипторы ширины с дескрипторами плотности пикселей в одном атрибуте srcset. Повторение дескрипторов (например, два источника в одном srcset с одинаковым дескриптором '2x') так же является недопустимым.

+ +

{{glossary("user agent", "Пользовательские агенты")}} выбирают любой из доступных источников на свое усмотрение. Это предоставляет им значительную свободу действий для адаптации их выбора на основе таких вещей, как предпочтения пользователя или {{glossary("bandwidth", "пропускная способность")}}. Смотрите наше руководство "Адаптивные изображения" для примера.

+
+
{{htmlattrdef("width")}}
+
Внутренняя ширина (см. {{glossary("intrinsic size", "Внутренний размер")}}) изображения в пикселях.
+
{{htmlattrdef("usemap")}}
+
+

Неполный {{glossary("URL")}} (начиная с '#') карты-изображения, связанной с элементом.

+ +
+

Заметка: Вы не можете использовать этот атрибут, если элемент <img> является потомком элемента {{htmlelement("a")}} или {{HTMLElement("button")}}.

+
+
+
+ +

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

+ +
+
{{htmlattrdef("align")}} {{Obsolete_Inline}}
+
+

Выравнивание изображения относительно окружающему его контексту. Этот атрибут больше не должен быть использован - вместо этого используйте CSS-свойства {{cssxref("float")}} и/или {{cssxref("vertical-align")}}. Вы можете так же использовать CSS-свойство {{cssxref("object-position")}} для позиционирования изображения внутри границ элемента <img>. Допустимые значения:

+ +
    +
  • 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.
  • +
+
+
{{htmlattrdef("border")}} {{Obsolete_Inline}}
+
Ширина рамки вокруг изображения. Вы должны использовать CSS-свойство {{cssxref('border')}} вместо этого атрибута.
+
{{htmlattrdef("hspace")}} {{Obsolete_Inline}}
+
Отступ слева и справа от изображения в пикселях. Вы должны использовать CSS-свойство {{cssxref('margin')}} вместо этого атрибута.
+
{{htmlattrdef("longdesc")}} {{Obsolete_Inline}}
+
+

Ссылка на более подробное описание изображения. Возможными значениями являются {{glossary("URL")}} или {{htmlattrxref("id")}} элемента.

+ +
+

Заметка: Этот атрибут упомянут в последней версии от {{glossary("W3C")}}, HTML 5.2, но был удален из живого стандарта HTML от {{glossary("WHATWG")}}. У него неопределенное будущее; авторы должны использовать альтернативы {{glossary("WAI")}}-{{glossary("ARIA")}}, такие как aria-describedby или aria-details.

+
+
+
{{htmlattrdef("name")}} {{Obsolete_Inline}}
+
Имя для элемента. Вы должны использовать атрибут {{htmlattrxref("id")}} вместо этого атрибута.
+
{{htmlattrdef("vspace")}} {{Obsolete_Inline}}
+
Отступ сверху и снизу от изображения в пикселях. Вы должны использовать CSS-свойство {{cssxref('margin')}} вместо этого атрибута.
+
+ +

Взаимодействие с CSS

+ +

<img> является замещаемым элементом; по умолчанию он имеет значение свойства {{cssxref("display")}} равное inline, но его размеры по умолчанию определяются внутренними значениями (см. {{glossary("Intrinsic Size", "внутренний размер")}}) встроенного изображения. Вы можете установить на изображение такие свойства, как {{cssxref("border")}}/{{cssxref("border-radius")}}, {{cssxref("padding")}}/{{cssxref("margin")}}, {{cssxref("width")}}/{{cssxref("height")}} и так далее.

+ +

Однако, часто бывает полезно установить для изображений свойство {{cssxref("display")}} в значение block, так что вы имеете максимальный контроль над стилизацией (например, margin: 0 auto не работает на изображениях с display: inline, легче размещать изображения в контексте с окружающими элементами, когда они являются блочными).

+ +

У <img> нет базовой линии, когда изображения используются в ситуации со строчным форматированием (display: inline) вместе с {{cssxref("vertical-align")}}: baseline, нижняя граница изображения будет размещена на базовой линии контейнера.

+ +

Вы можете использовать свойство {{cssxref("object-position")}} для позиционирования изображения внутри границ элемента <img> и свойством {{cssxref("object-fit")}} регулировать размеры изображения внутри этих границ (например, должно ли изображение помещаться в границы элемента или заполнить элемент полностью, даже если потребуется обрезка).

+ +

В зависимости от типа, изображение может иметь собственную (внутреннюю) ширину и высоту. Для некоторых типов изображений тем не менее {{glossary("Intrinsic Size", "внутренние размеры")}} не обязательны. {{glossary("SVG")}}-изображения, например, могут не иметь внутренних размеров, если для корня их элемента {{SVGElement("svg")}} не заданы width и height.

+ +

Примеры

+ +

Альтернативный текст

+ +

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

+ +
<img src="https://developer.mozilla.org/static/img/web-docs-sprite.22a6a085cf14.svg"
+     alt="Логотип MDN - изображение динозавра с текстом MDN web docs">
+
+ +

{{ EmbedLiveSample('Альтернативный_текст', '100%', '70') }}

+ +

Изображение-ссылка

+ +

Этот пример основан на предыдущем и показывает как превратить изображение в ссылку. Это очень просто сделать так — вы вставляете тег <img> внутрь элемента {{HTMLElement("a")}}. Также вы должны изменить альтернативный текст, чтобы он описывал назначение ссылки.

+ +
<a href="https://developer.mozilla.org">
+  <img src="https://developer.mozilla.org/static/img/web-docs-sprite.22a6a085cf14.svg"
+       alt="Посетить сайт MDN">
+</a>
+ +

{{ EmbedLiveSample('Изображение-ссылка', '100%', '70') }}

+ +

Использование атрибута srcset

+ +

В этом примере мы добавляем атрибут srcset, содержащий ссылку на версию логотипа в высоком разрешении; оно будет загружено вместо изображения в src на устройствах с высоким разрешением. Изображение указанное в атрибуте src, считается 1x кандидатом в {{glossary("user agent", "пользовательских агентах")}}, которые поддерживают srcset.

+ +
 <img src="mdn-logo-sm.png"
+      alt="MDN"
+      srcset="mdn-logo-HD.png 2x">
+
+ +

Использование атрибутов srcset и sizes

+ +

Атрибут src игнорируется в {{glossary("user agent", "пользовательских агентах")}}, которые поддерживают srcset, когда добавлены дескрипторы 'w'. Когда условие медиа-запроса (max-width: 600px) совпадает с состоянием устройства, будет загружено изображение шириной 200px (оно то самое, которое наиболее близко соответствует 200px, указанным в медиа-запросе), иначе будет загружено другое изображение.

+ +
 <img src="clock-demo-thumb-200.png"
+      alt="Часы"
+      srcset="clock-demo-thumb-200.png 200w,
+          clock-demo-thumb-400.png 400w"
+      sizes="(max-width: 600px) 200px, 50vw">
+
+ +

Проблемы безопасности и приватности

+ +

Хотя у элементов <img> есть множество безобидных применений, они могут иметь нежелательные последствия для безопасности и приватности пользователя. Смотрите "Заголовок Referer: проблемы приватности и безопасности" для получения дополнительной информации.

+ +

Проблемы доступности

+ +

Создание значимых альтернативных описаний

+ +

Значение атрибута alt должно четко и кратко описывать содержимое изображения. Он не должен описывать наличие самого изображения или название файла изображения. Если атрибут alt намеренно пропущен, потому что изображение не имеет текстового эквивалента, рассмотрите альтернативные способы представления содержимого, которое изображение пытается передать.

+ +

Плохо

+ +
<img alt="image" src="penguin.jpg">
+
+ +

Хорошо

+ +
<img alt="Пингвин на пляже." src="penguin.jpg">
+
+ +

Когда у изображения отсутствует атрибут alt, некоторые программы чтения с экрана могут объявить вместо него имя файла изображения. Это может привести к путанице, если имя файла не соответствует содержимому изображения.

+ + + +

Атрибут title

+ +

Атрибут {{htmlattrxref("title")}} не является приемлемой заменой атрибута alt. Кроме того, избегайте повторения значения атрибута alt в атрибуте title, объявленном на том же изображении.

+ +

Атрибут {{htmlattrxref("title")}} также не должен использоваться в качестве подписи, сопровождающей альтернативное описание изображения. Если изображению нужна подпись, используйте элемент {{HTMLElement("figure")}} вместе с элементом {{HTMLElement("figcaption")}}.

+ + + +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('Referrer Policy', '#referrer-policy-delivery-referrer-attribute', 'referrer attribute')}}{{Spec2('Referrer Policy')}}Добавлен атрибут referrerpolicy.
{{SpecName('HTML WHATWG', 'embedded-content.html#the-img-element', '<img>')}}{{Spec2('HTML WHATWG')}} 
{{SpecName('HTML5 W3C', 'embedded-content-0.html#the-img-element', '<img>')}}{{Spec2('HTML5 W3C')}} 
{{SpecName('HTML4.01', 'struct/objects.html#h-13.2', '<img>')}}{{Spec2('HTML4.01')}} +

 

+
+ +

Поддержка браузерами

+ +

{{Compat("html.elements.img")}}

+ +

Смотрите также

+ + -- cgit v1.2.3-54-g00ecf