Naar de inhoud
Gratis naslagwerk over HTML
HTML leren en naslaan
Naslag / Afbeeldingen en media

Het element <source>

Het <source>-HTML-element specificeert een of meer mediabronnen voor de elementen <picture>, <audio> en <video>. Het is een void element, wat betekent dat het geen inhoud heeft en geen afsluitende tag vereist. Dit element wordt vaak gebruikt om dezelfde media-inhoud in meerdere bestandsformaten aan te bieden, om compatibiliteit te bieden met een breed scala aan browsers, gezien hun verschillende ondersteuning voor afbeeldingsbestandsformaten en mediabestandsformaten.

Code
<video controls width="250" height="200" muted>
  <source src="/shared-assets/videos/flower.webm" type="video/webm" />
  <source src="/shared-assets/videos/flower.mp4" type="video/mp4" />
  Download the
  <a href="/shared-assets/videos/flower.webm">WEBM</a>
  or
  <a href="/shared-assets/videos/flower.mp4">MP4</a>
  video.
</video>
Resultaat in de browser

Attributen

Dit element ondersteunt alle globale attributen. Daarnaast kunnen de volgende attributen ermee gebruikt worden:

type

Specificeert het MIME-mediatype van de afbeelding of ander mediatype, eventueel inclusief een codecs-parameter.

src

Specificeert de URL van de mediabron. Verplicht als de ouder van <source> <audio> of <video> is. Niet toegestaan als de ouder <picture> is.

srcset

Specificeert een door komma's gescheiden lijst van een of meer afbeeldings-URL's en hun descriptoren. Verplicht als de ouder van <source> <picture> is. Niet toegestaan als de ouder <audio> of <video> is.

De lijst bestaat uit tekenreeksen gescheiden door komma's, die een reeks mogelijke afbeeldingen aangeven die de browser kan gebruiken. Elke tekenreeks bestaat uit:

  • Een URL die een afbeeldingslocatie specificeert.
  • Een optionele breedtedescriptor — een positief geheel getal direct gevolgd door "w", zoals 300w.
  • Een optionele pixeldichtheidsdescriptor — een positief zwevendekommagetal direct gevolgd door "x", zoals 2x.

Elke tekenreeks in de lijst moet ofwel een breedtedescriptor ofwel een pixeldichtheidsdescriptor hebben om geldig te zijn. Deze twee descriptoren mogen niet samen gebruikt worden; er mag slechts één consistent door de hele lijst heen gebruikt worden. De waarde van elke descriptor in de lijst moet uniek zijn. De browser kiest de meest geschikte afbeelding om op een bepaald moment weer te geven, op basis van deze descriptoren. Als de descriptoren niet zijn opgegeven, wordt de standaardwaarde 1x gebruikt. Als het sizes-attribuut ook aanwezig is, moet elke tekenreeks een breedtedescriptor bevatten. Als de browser srcset niet ondersteunt, wordt src gebruikt als de standaardafbeeldingsbron.

sizes

Specificeert een lijst met bronformaten die de uiteindelijk weergegeven breedte van de afbeelding beschrijven. Toegestaan als de ouder van <source> <picture> is. Niet toegestaan als de ouder <audio> of <video> is.

De lijst bestaat uit door komma's gescheiden bronformaten. Elk bronformaat is een paar bestaande uit een mediaconditie en een lengte. Voordat de pagina opgemaakt wordt, gebruikt de browser deze informatie om te bepalen welke afbeelding, gedefinieerd in srcset, weergegeven moet worden. Merk op dat sizes alleen effect heeft als er breedtedescriptoren zijn opgegeven bij srcset, en geen pixeldichtheidsdescriptoren (dat wil zeggen, 200w moet gebruikt worden in plaats van 2x).

media

Specificeert de mediaquery voor het beoogde medium van de bron.

height

Specificeert de intrinsieke hoogte van de afbeelding in pixels. Toegestaan als de ouder van <source> een <picture> is. Niet toegestaan als de ouder <audio> of <video> is.

De hoogtewaarde moet een geheel getal zijn zonder enige eenheden.

width

Specificeert de intrinsieke breedte van de afbeelding in pixels. Toegestaan als de ouder van <source> een <picture> is. Niet toegestaan als de ouder <audio> of <video> is.

De breedtewaarde moet een geheel getal zijn zonder enige eenheden.

Gebruiksopmerkingen

Het <source>-element is een void element, wat betekent dat het niet alleen geen inhoud heeft, maar ook geen afsluitende tag. Dat wil zeggen dat u </source> nooit in uw HTML gebruikt.

De browser doorloopt een lijst van <source>-elementen om een formaat te vinden dat hij ondersteunt. Hij gebruikt de eerste die hij kan weergeven. Voor elk <source>-element:

  • Als het type-attribuut niet is opgegeven, haalt de browser het type van de media op bij de server en bepaalt hij of dit weergegeven kan worden. Als de media niet weergegeven kan worden, controleert de browser de volgende <source> in de lijst.
  • Als het type-attribuut wel is opgegeven, vergelijkt de browser dit onmiddellijk met de mediatypen die hij kan weergeven. Als het type niet ondersteund wordt, slaat de browser het bevragen van de server over en controleert hij direct het volgende <source>-element.

Als geen van de <source>-elementen een bruikbare bron biedt:

  • In het geval van een <picture>-element valt de browser terug op het gebruik van de afbeelding die is opgegeven in het onderliggende <img>-element van het <picture>-element.
  • In het geval van een <audio>- of <video>-element valt de browser terug op het weergeven van de inhoud tussen de openings- en afsluitende tags van het element.

Voor informatie over afbeeldingsformaten die door webbrowsers ondersteund worden en begeleiding bij het selecteren van geschikte formaten om te gebruiken, zie onze gids voor afbeeldingsbestandstypen en -formaten. Voor details over de video- en audiomediatypen die u kunt gebruiken, zie de gids voor mediatypen en -formaten.

Voorbeelden

Het type-attribuut gebruiken met <video>

Dit voorbeeld laat zien hoe u een video in verschillende formaten kunt aanbieden: WebM voor browsers die dit ondersteunen, Ogg voor die welke Ogg ondersteunen, en QuickTime voor browsers die QuickTime ondersteunen. Als het <audio>- of <video>-element niet ondersteund wordt door de browser, wordt in plaats daarvan een melding getoond. Als de browser het element wel ondersteunt maar geen van de opgegeven formaten ondersteunt, wordt er een error-gebeurtenis geactiveerd op het <audio>- of <video>-element en geven de standaard mediabedieningselementen (indien ingeschakeld) een fout aan. Voor meer details over welke mediabestandsformaten te gebruiken en hun browserondersteuning, zie onze gids voor mediatypen en -formaten.

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>

Het media-attribuut gebruiken met <video>

Dit voorbeeld laat zien hoe u een alternatief bronbestand kunt aanbieden voor viewports boven een bepaalde breedte. Wanneer de browseromgeving van een gebruiker voldoet aan de opgegeven media-conditie, wordt het bijbehorende <source>-element gekozen. De inhoud van het src-attribuut ervan wordt vervolgens opgevraagd en weergegeven. Als de media-conditie niet overeenkomt, gaat de browser verder naar het volgende <source> in de lijst. De tweede <source>-optie in de onderstaande code heeft geen media-conditie, dus deze wordt geselecteerd voor alle andere browsercontexten.

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

Voor meer voorbeelden is het artikel HTML-video en -audio in het leergebied een geweldige bron.

Het media-attribuut gebruiken met <picture>

In dit voorbeeld zijn twee <source>-elementen opgenomen binnen <picture>, die versies van een afbeelding aanbieden om te gebruiken wanneer de beschikbare ruimte bepaalde breedtes overschrijdt. Als de beschikbare breedte kleiner is dan de kleinste van deze breedtes, valt de browser terug op de afbeelding die is opgegeven in het <img>-element.

HTML
<picture>
  <source srcset="voorbeeld.png" media="(width >= 800px)" />
  <source srcset="voorbeeld.png" media="(width >= 600px)" />
  <img src="voorbeeld.png" alt="dit naslagwerk" />
</picture>

Bij het <picture>-element moet u altijd een <img> met een terugvalafbeelding opnemen. Zorg er ook voor dat u een alt-attribuut toevoegt voor toegankelijkheid, tenzij de afbeelding puur decoratief en irrelevant voor de inhoud is.

height- en width-attributen gebruiken met <picture>

In dit voorbeeld zijn drie <source>-elementen met height- en width-attributen opgenomen in een <picture>-element. Een mediaquery stelt de browser in staat een afbeelding te selecteren om weer te geven met de height- en width-attributen, gebaseerd op de viewport-grootte.

HTML
<picture>
  <source
    srcset="landscape.png"
    media="(width >= 1000px)"
    width="1000"
    height="400" />
  <source
    srcset="square.png"
    media="(width >= 800px)"
    width="800"
    height="800" />
  <source
    srcset="portrait.png"
    media="(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>

Technische samenvatting

Inhoudscategorieën Geen.
Toegestane inhoud Geen; het is een void element.
Weglaten van tag Moet een begintag hebben en mag geen eindtag hebben.
Toegestane ouders
Een media-element — <audio> of <video> — en het moet geplaatst worden vóór enige flow-inhoud of een <track>-element.
Een <picture>-element, waarbij het geplaatst moet worden vóór het <img>-element.
Impliciete ARIA-rol Geen overeenkomstige rol
Toegestane ARIA-rollen Geen role toegestaan
DOM-interface HTMLSourceElement

Zie ook

Verwante elementen