The <picture>
HTML element contains zero or more <source>
elements and one <img>
element to offer alternative versions of an image for different display/device scenarios.
The browser will consider each child <source>
element and choose the best match among them. If no matches are found—or the browser doesn't support the <picture>
element—the URL of the <img>
element's src
attribute is selected. The selected image is then presented in the space occupied by the <img>
element.
Definition and Usage
The <picture>
tag gives web developers more flexibility in specifying image resources.
The most common use of the <picture>
element will be for art direction in responsive designs. Instead of having one image that is scaled up or down based on the viewport width, multiple images can be designed to more nicely fill the browser viewport.
The <picture>
element contains two tags: one or more <source> tags and one <img> tag.
The browser will look for the first <source> element where the media query matches the current viewport width, and then it will display the proper image (specified in the srcset attribute). The <img> element is required as the last child of the <picture>
element, as a fallback option if none of the source tags matches.
Tip: The <picture>
element works "similar" to <video> and <audio>. You set up different sources, and the first source that fits the preferences is the one being used.
Browser Support
The numbers in the table specify the first browser version that fully supports the element.
Global Attributes
The <picture>
tag also supports the Global Attributes in HTML.
Event Attributes
The <picture>
tag also supports the Event Attributes in HTML.