HTMLImageElement: width 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

HTMLImageElement 接口的 width 属性表示如果图像正在被绘制或渲染到任何视觉介质(如屏幕或打印机)时,它以 CSS 像素 为单位的绘制宽度。否则,它表示图像的自然、经像素密度校正后的宽度。

一个表示图像宽度的整数值。宽度的定义方式取决于图像是否被渲染到视觉介质(如屏幕或打印机)。

  • 如果图像正在被渲染到视觉介质,则宽度以 CSS 像素 表示。
  • 如果图像未被渲染到视觉介质,则其宽度使用图像的自然(固有)宽度表示,并根据 naturalWidth 指定的显示密度进行调整。

示例

在此示例中,使用 srcset 属性为时钟图像提供了两种不同的尺寸。一种是 200 像素宽,另一种是 400 像素宽。 sizes 属性用于指定给定视口宽度时应绘制图像的宽度。

HTML

对于宽度不超过 400 像素的视口,图像以 200 像素的宽度绘制。否则,以 400 像素绘制。

html
<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

JavaScript 在此刻查看 width 属性来确定图像的宽度。这在窗口的 loadresize 事件处理程序中执行,以便始终可以获得最新的宽度信息。

js
const clockImage = document.querySelector("img");
let output = document.querySelector(".size");

const updateWidth = () => {
  output.innerText = clockImage.width;
};

updateWidth();
window.addEventListener("resize", updateWidth);

结果

此示例可能在 自己的窗口中 尝试起来更容易。

规范

规范
HTML
# dom-img-width-dev

浏览器兼容性

另见