Главная/ Cправочник HTML, CSS, Javascript/ HTML справочник : HTML теги, HTML атрибуты, мета теги, спецсимволы/ Tags/ Тег source в HTML: Применение, особенности и кроссбраузерность

Тег source в HTML: Применение, особенности и кроссбраузерность

Последнее обновление: 23.08.2012

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

1. Внутри <video> и <audio>: Основное применение <source> — это указание нескольких источников медиафайлов одного и того же контента, но в разных форматах. Это позволяет браузеру выбрать первый поддерживаемый формат. Также можно указывать файлы с разным качеством (например, разрешением) для оптимизации под разные устройства.


<video controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.webm" type="video/webm">
<source src="movie.ogg" type="video/ogg">
<!-- Дополнительный fallback -->
Ваш браузер не поддерживает тег video.
</video>

<audio controls>
<source src="track.mp3" type="audio/mpeg">
<source src="track.ogg" type="audio/ogg">
Ваш браузер не поддерживает тег audio.
</audio>

2. Внутри <picture>: Для реализации адаптивных изображений. Тег <source> позволяет указать разные изображения для отображения в зависимости от характеристик устройства, таких как ширина экрана (media), плотность пикселей (srcset), или типа изображения (type). Это улучшает производительность и качество отображения.


<picture>
<source media="(min-width: 800px)" srcset="large.jpg">
<source media="(min-width: 400px)" srcset="medium.jpg">
<img src="small.jpg" alt="Описание изображения">
</picture>

Основные атрибуты тега <source>

  • src: Указывает URL медиафайла или изображения. Обычно используется только внутри <picture>. В <audio> и <video> сам путь указывается в атрибуте src родительского тега, а <source> служит для перечисления альтернатив.
  • srcset: Определяет один или несколько URL-адресов изображений, которые могут быть выбраны браузером в зависимости от условий (например, разрешения экрана). Используется внутри <picture> и иногда внутри <img> (без <source>).
  • type: Указывает MIME-тип ресурса (например, video/mp4, image/jpeg, image/webp). Это помогает браузеру быстро определить, поддерживает ли он данный формат, без необходимости загружать файл.
  • media: Определяет медиа-запрос CSS, который указывает, когда использовать данный источник. Используется внутри <picture> для адаптивных изображений.
  • sizes: Определяет размеры изображения в зависимости от медиа-запросов. Работает в паре с srcset, особенно внутри <picture> или <img>, чтобы помочь браузеру выбрать наиболее подходящий файл изображения.

Нюансы использования

  • Порядок важен: Браузер выбирает первый подходящий источник в порядке их следования. Поэтому рекомендуется указывать более современные и эффективные форматы (например, WebM для видео, WebP для изображений) первыми.
  • Обязательный fallback: Хотя <source> указывает альтернативы, всегда рекомендуется помещать элемент <img> (внутри <picture>) или просто текст (внутри <audio>, <video>), который будет отображен, если ни один из источников не поддерживается.
  • Атрибут type улучшает производительность: Указание типа файла позволяет браузеру пропустить неподдерживаемые форматы, не начиная их загрузку.
  • SEO и семантика: Использование <picture> и <source> позволяет предоставлять поисковым системам и вспомогательным технологиям лучшую информацию о содержимом страницы, особенно в контексте адаптивных изображений.

Кроссбраузерность

Поддержка элемента <source> в современных браузерах хорошая:

<audio> и <video> с <source>: Поддерживается во всех основных современных браузерах (Chrome, Firefox, Safari, Edge, Opera), а также в Internet Explorer 9+.
<picture> с <source>: Поддержка чуть хуже, но все основные современные браузеры (Chrome 38+, Firefox 38+, Safari 9.1+, Edge 13+, Opera 25+) поддерживают элемент <picture> и <source> внутри него. Internet Explorer не поддерживает <picture>.

Для обеспечения кроссбраузерности, особенно при использовании <picture> или продвинутых возможностей адаптивных изображений, часто используются полифиллы (библиотеки JavaScript, эмулирующие поддержку нового API в старых браузерах) или резервные решения (например, просто <img> с src).

Заключение

Тег <source> — мощный инструмент для создания гибких и эффективных веб-страниц. Его правильное использование позволяет оптимизировать загрузку медиафайлов и изображений, улучшить пользовательский опыт за счет предоставления контента в нужном формате и качестве, а также положительно влияет на SEO и семантику страницы. Понимание его применения, атрибутов и ограничений кроссбраузерности позволяет разработчику создавать более профессиональные и доступные веб-сайты.

Теги: HTML теги