This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The width property of the HTMLImageElement interface indicates the width at which an image is drawn in CSS pixels if it's being drawn or rendered to any visual medium such as a screen or printer. Otherwise, it's the natural, pixel density-corrected width of the image.
An integer value indicating the width of the image. The way the width is defined depends on whether or not the image is being rendered to a visual medium, such as a screen or printer:
naturalWidth.In this example, two different sizes are provided for an image of a clock using the srcset attribute. One is 200px wide and the other is 400px wide. The sizes attribute is used to specify the width at which the image should be drawn given the viewport's width.
For viewports up to 400px wide, the image is drawn at a width of 200px. Otherwise, it's drawn at 400px.
<p>Image width: <span class="size">?</span>px (resize to update)</p>
<img
src="/en-US/docs/Web/HTML/Reference/Elements/img/clock-demo-200px.png"
alt="Clock"
srcset="
/en-US/docs/Web/HTML/Reference/Elements/img/clock-demo-200px.png 200w,
/en-US/docs/Web/HTML/Reference/Elements/img/clock-demo-400px.png 400w
"
sizes="(width <= 400px) 200px, 400px" />
JavaScript looks at the width property to determine the width of the image at the moment. This is performed in the window's load and resize event handlers so the most current width information is always available.
const clockImage = document.querySelector("img");
let output = document.querySelector(".size");
const updateWidth = () => {
output.innerText = clockImage.width;
};
updateWidth();
window.addEventListener("resize", updateWidth);
This example may be easier to try out in its own window.
| Specification |
|---|
| HTML> # dom-img-width-dev> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
width |
1 | 12 | 1 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 | 1 |
HTMLCanvasElement.widthHTMLEmbedElement.widthHTMLIFrameElement.widthHTMLObjectElement.widthHTMLSourceElement.widthHTMLVideoElement.width
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/width