Spec-Zone.ru › HTML

<source>: Элемент источника медиа или изображения

Базовая линия Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Элемент <source> HTML определяет один или несколько медиа-ресурсов для элементов <picture>, <audio> и <video>. Это пустой элемент, что означает, что он не содержит содержимого и не требует закрывающего тега. Этот элемент обычно используется для предоставления одного и того же медиа-контента в нескольких форматах файлов, чтобы обеспечить совместимость с широким спектром браузеров, учитывая их различную поддержку форматов изображений и форматов медиа-файлов.

Попробуйте

Атрибуты

Этот элемент поддерживает все глобальные атрибуты. Кроме того, с ним можно использовать следующие атрибуты:

type

Указывает тип MIME изображения или другой тип медиа, необязательно включая codecs параметр.

src

Указывает URL медиа-ресурса. Требуется, если родителем <source> является элемент <audio> или <video>. Не разрешено, если родителем является элемент <picture>.

srcset

Указывает список, разделенный запятыми, одного или нескольких URL-адресов изображений и их описателей. Требуется, если родителем <source> является элемент <picture>. Не разрешено, если родителем является элемент <audio> или <video>.

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

  • URL, указывающий расположение изображения.
  • Необязательный описатель ширины — положительное целое число, непосредственно за которым следует "w", например 300w.
  • Необязательный описатель плотности пикселей — положительное дробное число, непосредственно за которым следует "x", например 2x.

В каждой строке списка должен быть либо описатель ширины, либо описатель плотности пикселей, чтобы она была действительной. Эти два описателя не должны использоваться вместе; должен использоваться только один из них последовательно в списке. Значение каждого описателя в списке должно быть уникальным. Браузер выбирает наиболее подходящее изображение для отображения в данный момент на основе этих описателей. Если описатели не указаны, используется значение по умолчанию 1x. Если атрибут sizes также присутствует, каждая строка должна включать описатель ширины. Если браузер не поддерживает srcset, для источника изображения по умолчанию используется src.

sizes

Указывает список размеров источников, описывающих окончательную рендерную ширину изображения. Разрешено, если родителем <source> является <picture>. Не разрешено, если родителем является элемент <audio> или <video>.

Список состоит из размеров источников, разделённых запятыми. Каждый размер источника — это пара условия и длины медиа. Перед выводом страницы браузер использует эту информацию для определения изображения, определённого в srcset, которое необходимо отобразить. Обратите внимание, что sizes будет действовать только в том случае, если ширина описателей предоставлена вместе с srcset, а не описателями плотности пикселей (то есть, 200w должен использоваться вместо 2x).

media

Указывает запрос на среду для целевой среды ресурса.

height

Указывает внутреннюю высоту изображения в пикселях. Разрешено, если родителем <source> является <picture>. Не разрешено, если родителем является элемент <audio> или <video>.

Значение высоты должно быть целым числом без единиц измерения.

width

Указывает внутреннюю ширину изображения в пикселях. Разрешено, если родителем <source> является <picture>. Не разрешено, если родителем является элемент <audio> или <video>.

Значение ширины должно быть целым числом без единиц измерения.

Примечания по использованию

Элемент <source> — это пустой элемент, что означает, что он не только не содержит содержимого, но и не имеет закрывающего тега. То есть, вы никогда не используете "</source>" в вашем HTML.

Браузер проходит по списку элементов <source> , чтобы найти формат, который он поддерживает. Он использует первый, который может отобразить. Для каждого элемента <source>:

  • Если атрибут type не указан, браузер извлекает тип медиа с сервера и определяет, может ли он быть отображен. Если медиа не может быть отображено, браузер проверяет следующий элемент <source> в списке.
  • Если атрибут type указан, браузер сразу сравнивает его с типами медиа, которые он может отобразить. Если тип не поддерживается, браузер пропускает запрос к серверу и непосредственно проверяет следующий элемент <source>.

Если ни один из элементов <source> не предоставляет используемый источник:

  • В случае элемента <picture>, браузер вернётся к использованию изображения, указанного в дочернем элементе <img> элемента <picture>.
  • В случае элемента <audio> или <video>, браузер вернётся к отображению содержимого, включённого между открывающим и закрывающим тегами элемента.

Дополнительную информацию о форматах изображений, поддерживаемых веб-браузерами, и рекомендации по выбору подходящих форматов см. в нашей руководстве по типам и форматам файлов изображений. Подробности о типах видео и аудиомедиа, которые можно использовать, см. в руководстве по типам и форматам медиа.

Примеры

Использование атрибута type с элементом <video>

Этот пример демонстрирует, как предоставить видео в разных форматах: WebM для браузеров, которые его поддерживают, Ogg для браузеров, которые поддерживают Ogg, и QuickTime для браузеров, которые поддерживают QuickTime. Если элемент <audio> или <video> не поддерживается браузером, вместо этого отображается сообщение. Если браузер поддерживает элемент, но не поддерживает ни один из указанных форматов, генерируется событие error и элементы управления медиа по умолчанию (если они включены) укажут на ошибку. Для получения более подробной информации о том, какие форматы файлов мультимедиа следует использовать и их поддержке в браузерах, см. наше руководство по типам и форматам медиа.

html
<video controls>
  <source src="foo.webm" type="video/webm" />
  <source src="foo.ogg" type="video/ogg" />
  <source src="foo.mov" type="video/quicktime" />
  I'm sorry; your browser doesn't support HTML video.
</video>

Использование атрибута media с элементом <video>

Этот пример демонстрирует, как предоставить альтернативный файл источника для окон отображения шириной более определённой величины. Когда среда просмотра пользователя соответствует указанному условию media, выбирается соответствующий элемент <source>. Затем запрашивается и отображается содержимое его атрибута src. Если условие media не соответствует, браузер переходит к следующему элементу <source> в списке. Второй вариант <source> в коде ниже не имеет условия media, поэтому он будет выбран для всех других контекстов просмотра.

html
<video controls>
  <source src="foo-large.webm" media="(min-width: 800px)" />
  <source src="foo.webm" />
  I'm sorry; your browser doesn't support HTML video.
</video>

Для получения дополнительных примеров, статья Видео- и аудио-контент в разделе "Учебники" — отличный ресурс.

Использование атрибута media с элементом <picture>

В этом примере два элемента <source> включены в элемент <picture>, предоставляя версии изображения для использования, когда доступное пространство превышает определённые значения ширины. Если доступная ширина меньше наименьшей из этих ширин, браузер вернётся к изображению, указанному в элементе <img>.

html
<picture>
  <source srcset="mdn-logo-wide.png" media="(min-width: 800px)" />
  <source srcset="mdn-logo-medium.png" media="(min-width: 600px)" />
  <img src="mdn-logo-narrow.png" alt="MDN Web Docs" />
</picture>

С элементом <picture> вы всегда должны включать изображение по умолчанию <img>. Также убедитесь, что вы добавили атрибут alt для обеспечения доступности, если изображение не является чисто декоративным и не имеет отношения к содержимому.

END_OF_DOCUMENT_MARKER

Использование атрибутов height и width с <picture>

В этом примере три элемента <source> с атрибутами height и width включены в элемент <picture>. Медиа-запрос позволяет браузеру выбирать изображение для отображения с атрибутами height и width на основе размера viewport.

html
<picture>
  <source
    srcset="landscape.png"
    media="(min-width: 1000px)"
    width="1000"
    height="400" />
  <source
    srcset="square.png"
    media="(min-width: 800px)"
    width="800"
    height="800" />
  <source
    srcset="portrait.png"
    media="(min-width: 600px)"
    width="600"
    height="800" />
  <img
    src="fallback.png"
    alt="Image used when the browser does not support the sources"
    width="500"
    height="400" />
</picture>

Техническое описание

Категории контента Нет.
Допустимый контент Отсутствует; это пустой элемент.
Пропуск тега Должен иметь открывающий тег и не должен иметь закрывающий тег.
Допустимые родительские элементы Медиа-элемент — <audio> или <video> — и он должен быть размещен перед любым последовательным контентом или элементом <track>. Элемент <picture>, и он должен быть размещен перед элементом <img>.
Неявная роль ARIA Нет соответствующей роли
Допустимые роли ARIA Нет разрешенных role
DOM-интерфейс HTMLSourceElement

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

Спецификация
HTML Стандарт
# the-source-element

Совместимость браузеров

Настольные Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
source 3 12
3.5До Firefox 15, Firefox выбирал первый элемент source, тип которого соответствует MIME-типу поддерживаемого медиаформата; подробности см. в ошибке 449363.
15 3.1 18
4До Firefox 15, Firefox выбирал первый элемент source, тип которого соответствует MIME-типу поддерживаемого медиаформата; подробности см. в ошибке 449363.
14 2 1.0 4.4
height 90 90 108 76 15 90 108 64 15 15.0 90
media 3 12
15media поддерживается в <source> внутри <picture>, <audio> и <video>. В Firefox 53-119, media поддерживается только в <source> внутри <picture>.
15 3.1 18
15media поддерживается в <source> внутри <picture>, <audio> и <video>. В Firefox 53-119, media поддерживается только в <source> внутри <picture>.
14 2 1.0 4.4
sizes 38
34–38Поддерживает подмножество синтаксиса для переключения разрешения (используя дескриптор x), но не полный синтаксис, который может использоваться с sizes (используя дескриптор w).
≤18 38 25
21–25Поддерживает подмножество синтаксиса для переключения разрешения (используя дескриптор x), но не полный синтаксис, который может использоваться с sizes (используя дескриптор w).
9.1 38
34–38Поддерживает подмножество синтаксиса для переключения разрешения (используя дескриптор x), но не полный синтаксис, который может использоваться с sizes (используя дескриптор w).
38 25
21–25Поддерживает подмножество синтаксиса для переключения разрешения (используя дескриптор x), но не полный синтаксис, который может использоваться с sizes (используя дескриптор w).
9.3 3.0
2.0–3.0Поддерживает подмножество синтаксиса для переключения разрешения (используя дескриптор x), но не полный синтаксис, который может использоваться с sizes (используя дескриптор w).
38
37–38Поддерживает подмножество синтаксиса для переключения разрешения (используя дескриптор x), но не полный синтаксис, который может использоваться с sizes (используя дескриптор w).
src 3 12 3.5 15 3.1 18 4 14 2 1.0 4.4
srcset 38
34–38Поддерживает подмножество синтаксиса для переключения разрешения (используя дескриптор x), но не полный синтаксис, который может использоваться с sizes (используя дескриптор w).
≤18 38 25
21–25Поддерживает подмножество синтаксиса для переключения разрешения (используя дескриптор x), но не полный синтаксис, который может использоваться с sizes (используя дескриптор w).
9.1 38
34–38Поддерживает подмножество синтаксиса для переключения разрешения (используя дескриптор x), но не полный синтаксис, который может использоваться с sizes (используя дескриптор w).
38 25
21–25Поддерживает подмножество синтаксиса для переключения разрешения (используя дескриптор x), но не полный синтаксис, который может использоваться с sizes (используя дескриптор w).
9.3 3.0
2.0–3.0Поддерживает подмножество синтаксиса для переключения разрешения (используя дескриптор x), но не полный синтаксис, который может использоваться с sizes (используя дескриптор w).
38
37–38Поддерживает подмножество синтаксиса для переключения разрешения (используя дескриптор x), но не полный синтаксис, который может использоваться с sizes (используя дескриптор w).
type 3 12 3.5 15 3.1 18 4 14 2 1.0 4.4
width 90 90 108 76 15 90 108 64 15 15.0 90

См. также

  • <audio> элемент
  • <picture> элемент
  • <video> элемент
  • Руководство по типам и форматам файлов изображений
  • Руководство по типам и форматам медиафайлов
  • Производительность веб-приложений

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API