Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

<picture>: The Picture element

BaselineWidely available

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'ssrc attribute is selected. The selected image is then presented in the space occupied by the<img> element.

Try it

<!--Change the browser window width to see the image change.--><picture>  <source    srcset="/shared-assets/images/examples/surfer.jpg"    media="(orientation: portrait)" />  <img src="/shared-assets/images/examples/painted-hand.jpg" alt="" /></picture>

To decide which URL to load, theuser agent examines each<source>'ssrcset,media, andtype attributes to select a compatible image that best matches the current layout and capabilities of the display device.

The<img> element serves two purposes:

  1. It describes the size and other attributes of the image and its presentation.
  2. It provides a fallback in case none of the offered<source> elements are able to provide a usable image.

Common use cases for<picture>:

  • Art direction. Cropping or modifying images for differentmedia conditions (for example, loading a simpler version of an image which has too many details, on smaller displays).

  • Offering alternative image formats, for cases where certain formats are not supported.

    Note:For example, newer formats likeAVIF orWEBP have many advantages, but might not be supported by the browser. A list of supported image formats can be found in:Image file type and format guide.

  • Saving bandwidth and speeding page load times by loading the most appropriate image for the viewer's display.

If providing higher-density versions of an image for high-DPI (Retina) display, usesrcset on the<img> element instead. This lets browsers opt for lower-density versions in data-saving modes, and you don't have to write explicitmedia conditions.

Attributes

This element includes onlyglobal attributes.

Usage notes

You can use theobject-position property to adjust the positioning of the image within the element's frame, and theobject-fit property to control how the image is resized to fit within the frame.

Note:Use these properties on the child<img> element,not the<picture> element.

Examples

These examples demonstrate how different attributes of the<source> element change the selection of the image inside<picture>.

The media attribute

Themedia attribute specifies a media condition (similar to a media query) that the user agent will evaluate for each<source> element.

If the<source>'s media condition evaluates tofalse, the browser skips it and evaluates the next element inside<picture>.

html
<picture>  <source srcset="mdn-logo-wide.png" media="(width >= 600px)" />  <img src="mdn-logo-narrow.png" alt="MDN" /></picture>

The srcset attribute

Thesrcset attribute is used to offer a list of possible images based on size or the display's pixel density.

It is composed of a comma-separated list of image descriptors. Each image descriptor is composed of a URL of the image, andeither:

  • awidth descriptor, followed by aw (such as300w);OR
  • apixel density descriptor, followed by anx (such as2x) to serve a high-res image for high-DPI screens.

Make sure to note that:

  • width and pixel density descriptors should not be used together
  • a missing pixel density descriptor implies 1x
  • duplicate descriptor values are not allowed (2x & 2x, 100w & 100w)

The following example illustrates the usage ofsrcset attribute with the<source> element to specify a high-density and standard-resolution image:

html
<picture>  <source srcset="logo.png, logo-1.5x.png 1.5x" />  <img src="logo.png" alt="MDN Web Docs logo" height="320" width="320" /></picture>

Thesrcset attribute can also be used on the<img> element without needing the<picture> element. The following example demonstrates how to use thesrcset attribute to specify standard-resolution and high-density images, respectively:

html
<img  srcset="logo.png, logo-2x.png 2x"  src="logo.png"  height="320"  width="320"  alt="MDN Web Docs logo" />

Thesizes attribute is not mandatory when using srcset, but it is recommended to use it in order to provide additional information to the browser to help it select the best image source.

Without sizes, the browser will use the default size of the image as specified by its dimensions in pixels. This may not be the best fit for all devices, especially if the image is displayed on different screen sizes or in different contexts.

Please note that sizes will have its effect only if width dimension descriptors are provided with srcset instead of pixel ratio values (200w instead of 2x for example).For more information on usingsrcset, see theResponsive images documentation.

The type attribute

Thetype attribute specifies aMIME type for the resource URL(s) in the<source> element'ssrcset attribute. If the user agent does not support the given type, the<source> element is skipped.

html
<picture>  <source srcset="photo.avif" type="image/avif" />  <source srcset="photo.webp" type="image/webp" />  <img src="photo.jpg" alt="photo" /></picture>

Technical summary

Content categoriesFlow content, phrasing content, embedded content
Permitted content Zero or more<source> elements, followed by one<img> element, optionally intermixed with script-supporting elements.
Tag omissionNone, both the starting and ending tag are mandatory.
Permitted parentsAny element that allows embedded content.
Implicit ARIA roleNo corresponding role
Permitted ARIA rolesNorole permitted
DOM interfaceHTMLPictureElement

Specifications

Specification
HTML
# the-picture-element

Browser compatibility

See also

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp