HTML-тег <source>
HTML-тег
<source>
используется для определения нескольких медиаресурсов для таких элементов, как
<video>
,
<audio>
и
<picture>
. Он обеспечивает гибкость при указании различных форматов, разрешений и условий воспроизведения медиаконтента, обеспечивая адаптивную и оптимизированную доставку в зависимости от пользовательских устройств и возможностей браузера.
Тег
<source>
должен быть вложен в родительский элемент, к которому он применяется, и не имеет закрывающего тега(самозакрывающийся). В одном родительском элементе можно использовать несколько тегов
<source>
.
Базовый синтаксис тега HTML <source>
Базовая структура тега
<source>
внутри различных родительских элементов:
Для видео:
<video controls>
<source src="video.mp4" type="video/mp4">
<source src="video.ogg" type="video/ogg">
Your browser does not support the video tag.
</video>
Для аудио:
<audio controls>
<source src="audio.mp3" type="audio/mpeg">
<source src="audio.ogg" type="audio/ogg">
Your browser does not support the audio tag.
</audio>
Для изображения:
<picture>
<source srcset="image-large.jpg" media="(min-width: 800px)">
<source srcset="image-small.jpg" media="(max-width: 799px)">
<img src="image-default.jpg" alt="A responsive image">
</picture>
В каждом случае браузер выбирает первый совместимый источник для использования на основе его атрибутов и устройства пользователя.
Атрибуты HTML-тега <source>
- src: Указывает URL-адрес медиаресурса.
-
тип:
определяет тип MIME медиаресурса(например,
video/mp4,audio/ogg). -
media:
определяет медиа-запрос для выбора ресурса, обычно используемый в теге
<picture>. -
srcset:
Предоставляет список источников изображений и дескрипторов для адаптивных изображений, применимых в теге
<picture>. -
sizes:
Задает атрибут размеров для изображений, используемый вместе с
srcsetв адаптивных изображениях.
Эти атрибуты позволяют тегу
<source>
обрабатывать разнообразные сценарии доставки видео, аудио и изображений.
Пример видео с несколькими форматами
Вот пример использования тега
<source>
с элементом
<video>
:
<!DOCTYPE html>
<html>
<body>
<h2>Video Example</h2>
<video controls width="600">
<source src="movie.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
Your browser does not support the video tag.
</video>
</body>
</html>
Объяснение: Браузер проверяет форматы в указанном порядке, используя первый совместимый ресурс. Если ни один из них не поддерживается, отображается аварийное сообщение.
Пример изображения для адаптивных изображений
Тег
<source>
также можно использовать для адаптивных изображений с тегом
<picture>
:
<!DOCTYPE html>
<html>
<body>
<h2>Responsive Image Example</h2>
<picture>
<source srcset="image-large.jpg" media="(min-width: 800px)">
<source srcset="image-small.jpg" media="(max-width: 799px)">
<img src="image-default.jpg" alt="A responsive image">
</picture>
</body>
</html>
Пояснение: Браузер выбирает наиболее подходящий источник изображения в зависимости от размера экрана. Для устройств с шириной экрана более 800 пикселей загружается «image-large.jpg», а для устройств с меньшим размером экрана — «image-small.jpg».
Стилизация медиа с помощью CSS
Вы можете стилизовать родительские элементы тега
<source>
, например
<video>
,
<audio>
или
<img>
, чтобы улучшить их внешний вид:
<style>
video, img {
border: 2px solid #007BFF;
border-radius: 8px;
}
</style>
Результат: Видеоролики, изображения и другие элементы мультимедиа можно стилизовать с помощью специальных рамок и закругленных углов для придания им изысканного вида.
Практическое применение тега <source>
-
Адаптивные изображения:
создавайте оптимизированные изображения для экранов разных размеров с помощью элемента
<picture>. - Совместимость с видео: поддержка нескольких форматов видео(например, MP4, WebM, OGG) для обеспечения совместимости со всеми браузерами.
- Параметры звука: поддержка различных аудиоформатов(например, MP3, OGG) для различных браузеров.
- Оптимизация производительности: загрузка соответствующих медиафайлов в зависимости от устройства пользователя или скорости соединения.
Тег
<source>
является ключевым компонентом для создания адаптивного, эффективного и удобного для пользователя мультимедийного опыта в Интернете.