HTMLImageElement: width property
Baseline Widely available
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.
Value
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:
- If the image is being rendered to a visual medium, the width is expressed in CSS pixels.
-
If the image is not being rendered to a visual medium, its width is represented
using the image's natural (intrinsic) width, adjusted for the display density as
indicated by
naturalWidth
.
Examples
HTML
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="/https/developer.mozilla.org/en-US/docs/Web/HTML/Element/img/clock-demo-200px.png"
alt="Clock"
srcset="
/en-US/docs/Web/HTML/Element/img/clock-demo-200px.png 200w,
/en-US/docs/Web/HTML/Element/img/clock-demo-400px.png 400w
"
sizes="(max-width: 400px) 200px, 400px" />
JavaScript
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 = (event) => {
output.innerText = clockImage.width;
};
window.addEventListener("load", updateWidth);
window.addEventListener("resize", updateWidth);
Result
This example may be easier to try out in its own window.
Specifications
Specification |
---|
HTML Standard # dom-img-width-dev |
Browser compatibility
BCD tables only load in the browser