<source>
Alternatywne źródło obrazu, dźwięku lub wideo dla `<picture>`, `<audio>` i `<video>`.
- Wyświetlanie
- nie jest wyświetlany
- Znacznik zamykający
- Brak, element pusty
- Dozwolona zawartość
- Brak, element pusty
Przykład
#<video controls width="300" height="200" preload="none" poster="/collections/covers/jak-nauczyc-sie-programowac.webp">
<source src="/media/zapowiedz-kursu.webm" type="video/webm">
<source src="/media/zapowiedz-kursu.mp4" type="video/mp4">
<a href="/media/zapowiedz-kursu.mp4">Pobierz zapowiedź kursu (MP4)</a>
</video>Plików wideo nie ma w podglądzie, dlatego odtwarzacz pokazuje tylko okładkę i kontrolki.
Definicja i zastosowanie
#Element <source> podaje jedno z kilku możliwych źródeł multimediów. Stoi wewnątrz <picture>, <audio> albo <video>, a przeglądarka przegląda źródła po kolei i wybiera pierwsze, które potrafi wykorzystać. Jest elementem pustym i sam niczego nie wyświetla.
W <picture> plik wskazujesz atrybutem srcset, a warunki wyboru atrybutami media (zapytanie o ekran) i type (format pliku). W <audio> i <video> używasz atrybutów src i type, dzięki czemu możesz podać ten sam film w kilku formatach, na przykład WebM i MP4.
Atrybut type warto podawać zawsze. Przeglądarka od razu pomija wtedy źródła w formatach, których nie obsługuje, zamiast pobierać fragment każdego pliku, żeby to sprawdzić.
Składnia
#<source src="…" type="…">
<source srcset="…" media="…">Atrybuty
#URL
Adres pliku dźwiękowego lub wideo. Używany wewnątrz<audio>i<video>.type
typ MIME, np. `video/webm`, `audio/mpeg`, `image/avif`
Format pliku. Przeglądarka pomija źródła w formatach, których nie zna. Możesz dopisać parametrcodecs, na przykładvideo/webm; codecs="vp9", żeby wskazać dokładny kodek.srcset
adres obrazu lub lista wersji z opisem szerokości albo gęstości
Plik obrazu dla tego źródła, a nawet kilka jego wersji zapisanych tak samo jak wsrcsetelementu<img>. Używany tylko w<picture>.zapytanie o media, np. `(min-width: 768px)`
Warunek, który musi spełnić ekran, żeby źródło zostało wybrane. Działa jak zapytania@mediaw CSS. Wygrywa pierwsze pasujące źródło, więc przy warunkachmin-widthzaczynaj od największej szerokości.sizes
lista warunków i szerokości
Działa razem zsrcsetopartym na szerokościach (800w) i mówi przeglądarce, jak szeroki będzie obraz na stronie. Tylko w<picture>.width / height
liczba pikseli
Wymiary obrazu z tego źródła. Przydają się przy różnych kadrach: przeglądarka rezerwuje miejsce o proporcjach źródła, które faktycznie wybrała. Tylko w<picture>.
Element obsługuje też wszystkie atrybuty globalne, takie jak class, id, style czy hidden.
Atrybuty w praktyce
#src
URLAdres pliku dźwiękowego lub wideo. Używany wewnątrz <audio> i <video>.
<audio controls preload="none">
<source src="/podcast/odcinek-12.ogg" type="audio/ogg">
<source src="/podcast/odcinek-12.mp3" type="audio/mpeg">
</audio>Plików dźwiękowych nie ma w podglądzie, widoczne są tylko kontrolki odtwarzacza.
media
zapytanie o media, np. `(min-width: 768px)`Warunek, który musi spełnić ekran, żeby źródło zostało wybrane. Działa jak zapytania @media w CSS. Wygrywa pierwsze pasujące źródło, więc przy warunkach min-width zaczynaj od największej szerokości.
<picture>
<source media="(min-width: 480px)" srcset="/collections/covers/vibe-coding.webp" width="240" height="160">
<img src="/collections/cursor.png" alt="Kurs vibe codingu z edytorem Cursor" width="72" height="72">
</picture>Zwęź okno poniżej 480 pikseli, a obraz zmieni się na logo.
Obsługa przeglądarek
#Szeroko dostępne
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- W
<video>i<audio>podawaj źródła od nowocześniejszego i lżejszego formatu do najbardziej zgodnego, który zwykle stoi na końcu (na przykład MP4). - W
<picture>używajsrcset, a niesrc. Atrybutsrcna<source>działa tylko w elementach audio i wideo. - Zmiana
srcw istniejącym<source>skryptem nie wystarczy. Trzeba jeszcze wywołaćvideo.load(), żeby odtwarzacz wczytał nowy plik.
Powiązane hasła
#- <picture>Kontener na kilka wersji obrazu. Przeglądarka wybiera tę, która najlepiej pasuje do ekranu i formatu.
- <img>Obraz osadzony na stronie.
- <video>Odtwarzacz wideo osadzony bezpośrednio na stronie.
- <audio>Odtwarzacz dźwięku: podcast, nagranie lektora, efekt dźwiękowy.
- <track>Plik z napisami, opisami lub rozdziałami dla `<video>` i `<audio>`.
Widzisz błąd albo brakuje przykładu? Napisz do nas.