Responsive Images Community Group logo

We’re a group of developers working towards a client-side solution for delivering alternate image data based on device capabilities to prevent wasted bandwidth and optimize display for both screen and print.

Join Us!
Examples of art direction. See more demos of responsive images.

What is the `picture` Element?

The picture element is a markup pattern that allows developers to declare multiple sources for an image. By using media queries, it gives developers control as to when and if those images are presented to the user.

The picture element is one part of the HTML specification.

Sample Markup for `picture`
<picture>
  <source media="(min-width: 40em)"
    srcset="big.jpg 1x, big-hd.jpg 2x">
  <source 
    srcset="small.jpg 1x, small-hd.jpg 2x">
  <img src="fallback.jpg" alt="">
</picture>

What are the `srcset` and `sizes` attributes?

The srcset and sizes attributes extend the img and source elements to provide a list of available image sources and their sizes. Browsers can then use this information to pick the best image source.

Both srcset and sizes are part of the HTML specification and can used separately or in conjunction with the picture element.

Sample Markup for `srcset` and `sizes`
<img src="small.jpg"
     srcset="large.jpg 1024w, medium.jpg 640w, small.jpg 320w"
     sizes="(min-width: 36em) 33.3vw, 100vw"
     alt="A rad wolf">

What are the use cases for each?

The Use Cases and Requirements document outlines the goals, objectives, and potential issues for end users that must be solved by the picture and srcset extension specifications.

View the Use Cases and Requirements

Where can I learn more?

The RICG on GitHub
http://gh.responsiveimages.org
IRC Logs
http://ircbot.responsiveimages.org
Discussion List Archives
http://list.responsiveimages.org

Implementation status

This list indicates the status of implementation in major browser engines. We always try to keep this up-to-date but please refer to the linked issues for the latest status.
In most bugtrackers you can vote for implementation in the linked bugs.

30 closed issues

Issue Description Author Last Modified
267 Writing to `currentSrc` 5 comments Wilto 72 days ago
266 Add support for logical operators in media queries passed in sizes strings 1 comment przemyslaw-piatek 107 days ago
262 Chrome renders image at viewport width 2 comments attiks 114 days ago
259 Image density API 2 comments yoavweiss 114 days ago
257 media-condition/mediaquery changes should only affect images in document 14 comments aFarkas 136 days ago
256 Require default length in sizes (authoring req) 4 comments zcorpan 141 days ago
254 Allow adaption of <figcaption> based on chosen <source> 17 comments Boldewyn 214 days ago
253 Intrisinic dimensions adaptation only when sizes is explicit? 8 comments yoavweiss 169 days ago
251 SVG format not loading in native picture element when specified in source element with type="image/svg+xml" 1 comment bjankord 252 days ago
250 Update biblio.json mdmcginn 252 days ago
249 onerror when environment changed? 4 comments yoavweiss 240 days ago
248 naturalWidth/naturalHeight should maybe return null when no there's intrinsic size 1 comment zcorpan 275 days ago
247 naturalWidth/naturalHeight should apply current pixel density zcorpan 166 days ago
245 Drop any candidate with a `type` descriptor if `type` is not supported 9 comments eeeps 278 days ago
244 Drop candidates with `w` descriptors if `w`is unsupported 3 comments eeeps 278 days ago
242 media attribute with invalid value not parsed correctly 1 comment zcorpan 293 days ago
241 Ban functions in sizes other than calc() 1 comment zcorpan 298 days ago
240 Using 'width' value to determine which resource to pick 3 comments igrigorik 308 days ago
239 Drop candidates with h without w 1 comment zcorpan 283 days ago
237 Editorial: missing xref for "<code>srcset</code>" zcorpan 332 days ago
236 Ref. #220 - Fixes missing `alt` attribute. 2 comments Wilto 336 days ago
235 Closes #234 - Clarify that percentage-based values are invalid in `sizes` 1 comment Wilto 336 days ago
234 Percentages not allowed in sizes="" 2 comments gregwhitworth 333 days ago
233 Missing "normalize the source densities" step for sources coming from `<img>` 1 comment tabatkins 343 days ago
232 Pipeline updates zcorpan 347 days ago
231 Preloading alternate images and switching sources 7 comments Nephyrin 362 days ago
230 `srcset` making requests on resize/zoom 24 comments Wilto 165 days ago
229 Block insecure assets served via `picture`/`srcset` on TLS sites 13 comments Wilto 333 days ago
228 Intrinsic sizing, 'w' resources and zooming 6 comments yoavweiss 165 days ago
227 Should normalize the source densities for <img> zcorpan 332 days ago