Definition
The <picture>
HTML element is used to provide multiple sources or versions of an image, allowing the browser to choose the most suitable one based on the user’s device, screen resolution, or other factors. It is commonly used for responsive images to ensure optimal display across different devices and screen sizes.
Here’s an example of how to use the <picture>
element:
<picture>
<source srcset="image-large.jpg" media="(min-width: 768px)" />
<source srcset="image-medium.jpg" media="(min-width: 480px)" />
<img src="image-small.jpg" alt="Image description" />
</picture>
In this example, the <picture>
element contains multiple <source>
elements and an <img>
element. Each <source>
element provides a different version of the image with its respective srcset
attribute and a media
attribute that defines the conditions under which it should be used. The srcset
attribute specifies the image source URL or path, and the media
attribute specifies the media query that the browser should evaluate to determine if the source should be used. The <img>
element is used as a fallback, providing an image that will be displayed if none of the <source>
elements are matched.
The browser evaluates the <source>
elements from top to bottom and selects the first one with a matching media
query. This allows you to provide different image versions for different screen sizes or device capabilities, improving performance and user experience.
It’s important to provide appropriate image formats and resolutions for each source, considering factors like image quality, file size, and device compatibility. The srcset
attribute can include multiple image sources separated by commas, each with an optional descriptor indicating the image size or pixel density. This allows the browser to choose the most suitable image based on the device’s capabilities.