HTMLImageElement
property
srcset
is a string which identifies one or more
image candidate strings
, separated using commas (
,
) each specifying image resources to use under given circumstances.
Each image candidate string contains an image URL and an optional width or pixel density descriptor that indicates the conditions under which that candidate should be used instead of the image specified by the
src
特性。
srcset
property, along with the
sizes
property, are a crucial component in designing responsive web sites, as they can be used together to make pages that use appropriate images for the rendering situation.
htmlImageElement.srcset = imageCandidateStrings; let srcset = htmlImageElement.srcset;
A
USVString
containing a comma-separated list of one or more image candidate strings to be used when determining which image resource to present inside the
<img>
element represented by the
HTMLImageElement
.
Each image candidate string must begin with a valid URL referencing a non-interactive graphic resource. This is followed by a comma (
,
) character and then a condition descriptor that indicates the circumstances in which the indicated image should be used. Space characters, other than the whitespace separating the URL and the corresponding condition descriptor, are ignored; this includes both leading and trailing space, as well as space before or after each comma.
If the condition descriptor is not provided (in other words, the image candidate provides only a URL), the candidate is used as the fallback if none of the other candidates match. Otherwise, the condition descriptor may take one of two forms:
450w
. The specified width must be a positive, non-zero, integer, and
must
match the intrinsic width of the referenced image.
2x
or
2.0x
.
You may mix and match the two types of descriptor. You must not, however, provide multiple image candidate strings that specify the same descriptor. All of the following are valid image candidate strings:
"images/team-photo.jpg 1x, images/team-photo-retina.jpg 2x, images/team-photo-full 2048w"
This string provides versions of an image to be used at the standard pixel density (
1x
) as well as double that pixel density (
2x
). Also available is a version of the image for use at a width of 2048 pixels (
2048w
).
"header640.png 640w, header960.png 960w, header1024.png 1024w, header.png"
This string provides versions of a header image to use when the user agent's renderer needs an image of width 640px, 960px, or 1024px. An additional, fallback image candidate is provided without any condition at all, to be used for any other width.
"icon32px.png 32w, icon64px.png 64w, icon-retina.png 2x icon-ultra.png 3x icon.svg"
Here, options are provided for an icon at widths of 32px and 64px, as well as at pixel densities of 2x and 3x. A fallback image is provided as an SVG file that should be used in all other cases. Notice that the candidates may use different image types.
For more information on what image formats are available for use in the
<img>
element, see
Image file type and format guide
.
The HTML below indicates that the default image is the 200 pixel wide version of the clock image we use in several places throughout our documentation. Also specified by the
srcset
attribute is that the 200-pixel version should be used for 1x displays while the 400-pixel version should be used for 2x displays.
<div class="box">
<img src="/files/16797/clock-demo-200px.png"
alt="Clock"
srcset="/files/16864/clock-demo-200px.png 1x, /files/16797/clock-demo-400px.png 2x">
</div>
The CSS simply specifies that the image and its surrounding box should be 200 pixels square and should have a simple border around it. Also provided is the
word-break
attribute, using the
break-all
value to tell the browser to wrap the string within the width available regardless of where in the string the wrap must occur.
.box {
width: 200px;
border: 2px solid rgba(150, 150, 150, 255);
padding: 0.5em;
word-break: break-all;
}
.box img {
width: 200px;
}
The following code is run within a handler for the
window
's
load
event. It uses the image's
currentSrc
property to fetch and display the URL selected by the browser from the
srcset
.
let box = document.querySelector(".box");
let image = box.querySelector("img");
let newElem = document.createElement("p");
newElem.innerHTML = `Image: <code>${image.currentSrc}</code>`;
box.appendChild(newElem);
In the displayed output below, the selected URL will correspond with whether your display results in selecting the 1x or the 2x version of the image. If you happen to have both standard and high density displays, try moving this window between them and reloading the page to see the results change.
For additional examples, see our guide to responsive images .
| 规范 | 状态 | 注释 |
|---|---|---|
|
HTML 实时标准
The definition of 'HTMLImageElement.srcset' in that specification. |
实时标准 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
srcset
|
Chrome 34 | Edge 12 |
Firefox
38
|
IE No | Opera 21 | Safari 8 | WebView Android 37 | Chrome Android 34 |
Firefox Android
38
|
Opera Android No | Safari iOS 8 | Samsung Internet Android 2.0 |
完整支持
不支持
实验。期望将来行为有所改变。
用户必须明确启用此特征。
HTMLImageElement
BeforeUnloadEvent
DOMStringMap
ErrorEvent
GlobalEventHandlers
HTMLAnchorElement
HTMLAreaElement
HTMLAudioElement
HTMLBRElement
HTMLBaseElement
HTMLBaseFontElement
HTMLBodyElement
HTMLButtonElement
HTMLCanvasElement
HTMLContentElement
HTMLDListElement
HTMLDataElement
HTMLDataListElement
HTMLDialogElement
HTMLDivElement
HTMLDocument
HTMLElement
HTMLEmbedElement
HTMLFieldSetElement
HTMLFormControlsCollection
HTMLFormElement
HTMLFrameSetElement
HTMLHRElement
HTMLHeadElement
HTMLHeadingElement
HTMLHtmlElement
HTMLIFrameElement
HTMLInputElement
HTMLIsIndexElement
HTMLKeygenElement
HTMLLIElement
HTMLLabelElement
HTMLLegendElement
HTMLLinkElement
HTMLMapElement
HTMLMediaElement
HTMLMetaElement
HTMLMeterElement
HTMLModElement
HTMLOListElement
HTMLObjectElement
HTMLOptGroupElement
HTMLOptionElement
HTMLOptionsCollection
HTMLOutputElement
HTMLParagraphElement
HTMLParamElement
HTMLPictureElement
HTMLPreElement
HTMLProgressElement
HTMLQuoteElement
HTMLScriptElement
HTMLSelectElement
HTMLShadowElement
HTMLSourceElement
HTMLSpanElement
HTMLStyleElement
HTMLTableCaptionElement
HTMLTableCellElement
HTMLTableColElement
HTMLTableDataCellElement
HTMLTableElement
HTMLTableHeaderCellElement
HTMLTableRowElement
HTMLTableSectionElement
HTMLTemplateElement
HTMLTextAreaElement
HTMLTimeElement
HTMLTitleElement
HTMLTrackElement
HTMLUListElement
HTMLUnknownElement
HTMLVideoElement
HashChangeEvent
历史
ImageData
定位
MessageChannel
MessageEvent
MessagePort
Navigator
NavigatorGeolocation
NavigatorID
NavigatorLanguage
NavigatorOnLine
NavigatorPlugins
PageTransitionEvent
Plugin
PluginArray
PopStateEvent
PortCollection
PromiseRejectionEvent
RadioNodeList
Transferable
ValidityState
Window
WindowBase64
WindowEventHandlers
WindowTimers