HTML <source> tagS2C Home   « HTML <source> tag

Definition

The <source> tag is a self closing tag used for specifying multiple media resources on media elements <audio>, <picture> and <video>.

A <source> element that has a following sibling <source> element or <img> element with a srcset attribute must hava a media attribute and/or type attribute.

The browser will select the first media resource in the list it supports.

The <source> tag was introduced in HTML5.

Example


<p>Resize the screen to see the picture change.</p>
<picture>
  <source media="(min-width:1100px)" srcset="../images/chips.webp">
  <source media="(min-width:600px)" srcset="../images/chillifriedseafoodmedium.webp">
  <img src=../images/chickenpiesmall.webp" alt="Chicken Pie" style="width:auto;">
</picture>

Resize the screen to see the picture change.

Chicken Pie

In the example above we are using the <picture> element in conjunction with two <source> elements. The browser will select the first <source> element that matches the width specified by the media attribute. When neither minimum width is reached a default image (chicken pie) is shown.

Attributes

The following attributes can be used with the <source> tag.


<source> Specific Attributes
Attribute Value Description Example
mediamedia_querySpecifies the type of media query.

Must be a valid media query.

<source src="../../pages/ball.avi"
        media="(min-width:800px)> 
sizeswidthXheight or anySpecifies space separated sizes of images for different media content.

<source src="../../images/apple.jpg"
        sizes="16x16 64x64"> 
srcurlSpecifies the URL location of an audio or video file.

Required when <source> used within <audio> or <video> tags.

<source src="../../pages/ball.avi">
srcseturlSpecifies the URL location of an image.

Required when <source> used within a <picture> element.

<source srcset="../../images/apple.jpg">
typemedia_typeSpecifies the content type of the file to be embedded.

Must be a valid MIME type.

<source type="video/x-msvideo">
<source> Global Attributes
Attribute Description Example
Common
classSpecifies a classname for the element allowing you to apply the style of the predefined class to the content.

<source class="name">
idSpecifies a unique id for the element allowing you to apply the style of the predefined id to the content.

<source id="name">
styleSpecifies an inline style for the element allowing you to apply the style to the contentt.

<source style="color:red;">
titleSpecifies an inline style for the element allowing you to apply the style to the content.

<source title="Content info">
Keyboard
accesskeySpecifies a keyboard shortcut to associate with the element.

<source accesskey="a">
tabindexSpecifies a tab order for the element.

<source tabindex="1">
Language
dirSpecifies the directional flow of the content.

<!-- The text will flow from left to right -->
<source dir="ltr">
<!-- The text will flow from right to left -->
<source dir="rtl">
langSpecifies a language code for the content of the element.

<source lang="en">
spellcheckSpecifies an inline style for the element allowing you to apply the style to the contentt.

<!-- Valid values true and false. -->
<!-- Default inherited / browser specific. -->
<source spellcheck="true"> 
translateSpecifies an inline style for the element allowing you to apply the style to the content.

<!-- Valid values yes and no. -->
<!-- Default yes. -->
<source translate="no"> 
Miscellaneous
contenteditableSpecifies whether the content of the element is editable.

<!-- Valid values true and false. -->
<!-- Default inherited. -->
<source contenteditable="true"> 
draggableSpecifies whether the element is draggable.

<!-- Valid values true and false. -->
<!-- Default browser specific. -->
<source draggable="true">
hiddenSpecifies whether the element is not yet, or no longer, relevant.

<!-- Valid values an empty string or hidden -->
<source hidden> 
<source hidden="hidden"> 
<source> Event Attributes
Attribute Description Example
Document Element
oncopyThe script to be run when the user copies the content of an element.

 <!-- Executes go() function -->
<source oncopy="go()"> 
oncutThe script to be run when the user cuts the content of an element.

 <!-- Executes go() function -->
<source oncut="go()">
onpasteThe script to be run when the user pastes some content into an element.

 <!-- Executes go() function -->
<source onpaste="go()">
Drag and Drop
ondragThe script to be run when an element is dragged.

 <!-- Executes go() function -->
<source ondrag="go()">
ondragendThe script to be run when an element has stopped being dragged.

 <!-- Executes go() function -->
<source ondragend="go()">
ondragenterThe script to be run when an element has been dragged to a valid drop target.

 <!-- Executes go() function -->
<source ondragenter="go()">
ondragleaveThe script to be run when an element leaves a valid drop target.

 <!-- Executes go() function -->
<source ondragleave="go()">
ondragoverThe script to be run when an element is being dragged over a valid drop target.

 <!-- Executes go() function -->
<source ondragover="go()">
ondragstartThe script to be run at the start of a drag operation.

 <!-- Executes go() function -->
<source ondragstart="go()">
ondropThe script to be run when a dragged element is being dropped.

 <!-- Executes go() function -->
<source ondrop="go()">
Form
onblurThe script to be run when the element loses focus.

 <!-- Executes go() function -->
<source onblur="go()">
onchangeThe script to be run when object changed and attempt to leave field.

 <!-- Executes go() function -->
<source onchange="go()">
oncontextmenuThe script to be run when a context menu is triggered.

 <!-- Executes go() function -->
<source oncontextmenu="go()">
onfocusThe script to be run when the element gets focus.

 <!-- Executes go() function -->
<source onfocus="go()">
oninputThe script to be run when an element gets user input.

 <!-- Executes go() function -->
<source oninput="go()">
oninvalidThe script to be run when an element is invalid.

 <!-- Executes go() function -->
<source oninvalid="go()">
onresetThe script to be run when a dragged element is being dropped.

 <!-- Executes go() function -->
<source onreset="go()">
onselectThe script to be run when some or all of the contents of an object are selected.

 <!-- Executes go() function -->
<source onselect="go()">
onsubmitThe script to be run when a form is submitted.

 <!-- Executes go() function -->
<source onsubmit="go()">
Keyboard
onkeydownThe script to be run when an element is in focus and keyboard key is pressed down.

 <!-- Executes go() function -->
<source onkeydown="go()">
onkeypressThe script to be run when an element is in focus and keyboard key is pressed down and released.

 <!-- Executes go() function -->
<source onkeypress="go()">
onkeyupThe script to be run when an element is in focus and keyboard key is released.

 <!-- Executes go() function -->
<source onkeyup="go()">
Media
onabortThe script code to be run on abort.

 <!-- Executes go() function -->
<source onabort="go()">
oncanplayThe script to be run when a file has buffered enough so it is ready to start playing.

 <!-- Executes go() function -->
<source oncanplay="go()">
oncanplaythroughThe script to be run when a file can be played all the way to the end without further need of buffering.

 <!-- Executes go() function -->
<source oncanplaythrough="go()">
oncuechangeThe script to be run when the cue changes when using the track element.

 <!-- Executes go() function -->
<source oncuechange="go()">
ondurationchangeThe script to be run when the length of the media is changed.

 <!-- Executes go() function -->
<source ondurationchange="go()">
onemptiedThe script to be run when a media resource element suddenly becomes empty, usually due to an error.

 <!-- Executes go() function -->
<source onemptied="go()">
onendedThe script to be run when the media has reach the end.

 <!-- Executes go() function -->
<source onended="go()">
onloadeddataThe script to be run when media data is loaded and playback can start.

 <!-- Executes go() function -->
<source onloadeddata="go()">
onloadedmetadataThe script to be run when metadata has been loaded.

 <!-- Executes go() function -->
<source onloadedmetadata="go()">
onloadstartThe script to be run whenthe media resource has started loading.

 <!-- Executes go() function -->
<source onloadstart="go()">
onpauseThe script to be run when the media resource has been paused.

 <!-- Executes go() function -->
<source onpause="go()">
onplayThe script to be run when the media resource starts playback.

 <!-- Executes go() function -->
<source onplay="go()">
onplayingThe script to be run when when playback has already begun.

 <!-- Executes go() function -->
<source onplaying="go()">
onprogressThe script to be run when the browser is fetching the media data.

 <!-- Executes go() function -->
<source onprogress="go()">
onratechangeThe script to be run when the playback rate changes.

 <!-- Executes go() function -->
<source onratechange="go()">
onseekedThe script to be run when the seeking attribute is set to false indicating that seeking has finished.

 <!-- Executes go() function -->
<source onseeked="go()">
onseekingThe script to be run when the seeking attribute is set to true indicating that seeking is currently active.

 <!-- Executes go() function -->
<source onseeking="go()">
onstalledThe script to be run when the browser is unable to continue fetching media data.

 <!-- Executes go() function -->
<source onstalled="go()">
onsuspendThe script to be run when media data has stopped before being completely loaded.

 <!-- Executes go() function -->
<source onsuspend="go()">
ontimeupdateThe script to be run when the media resources current playback position has changed.

 <!-- Executes go() function -->
<source ontimeupdate="go()">
onvolumechangeThe script to be run when the volume has changed or been muted.

 <!-- Executes go() function -->
<source onvolumechange="go()">
onwaitingThe script to be run when the media resource has paused but is expected to resume.

 <!-- Executes go() function -->
<source onwaiting="go()">
Mouse
onclickThe script to be run when when a mouse is clicked on an element.

 <!-- Executes go() function -->
<source onclick="go()">
ondblclickThe script to be run when a mouse is double clicked on an element.

 <!-- Executes go() function -->
<source ondblclick="go()">
onmousedownThe script to be run when he mouse button is pressed down while the cursor is over an element.

 <!-- Executes go() function -->
<source onmousedown="go()">
onmousemoveThe script to be run when the mouse button is moved.

 <!-- Executes go() function -->
<source onmousemove="go()">
onmouseoutThe script to be run when the mouse cursor moves off an element.

 <!-- Executes go() function -->
<source onmouseout="go()">
onmouseoverThe script to be run when the mouse cursor moves over an element.

 <!-- Executes go() function -->
<source onmouseover="go()">
onmouseupThe script to be run when the mouse button is released while the cursor is over the element.

 <!-- Executes go() function -->
<source onmouseup="go()">
onwheelThe script to be run when the mouse wheel rolls up or down over an element.

 <!-- Executes go() function -->
<source onwheel="go()">
Scroll
onscrollThe script code to be run when the scrollbar of an element is being scrolled.

 <!-- Executes go() function -->
<source onscroll="go()"> 
Window - NONE