HTMLImageElement:naturalHeight 属性
HTMLImageElement
接口的naturalHeight
属性是一个只读值,它返回图像的内在(自然)、密度校正后的高度,以CSS 像素 为单位。
这是在没有任何限制其高度的情况下绘制图像的高度;如果您未为图像指定高度,或将图像放置在限制或明确指定图像高度的容器内,则它将呈现此高度。
注意:大多数情况下,自然高度是服务器发送的图像的实际高度。但是,浏览器可以在将图像推送到渲染器之前对其进行修改。例如,Chrome 降低低端设备上图像的分辨率。在这种情况下,naturalHeight
会将浏览器干预修改后的图像高度视为自然高度,并返回此值。
值
一个整数,表示图像的内在高度(以 CSS 像素为单位)。当没有为图像建立约束或特定值时,这是图像自然绘制的高度。与height
不同,此自然高度已针对呈现它的设备的像素密度进行了校正。
如果内在高度不可用——要么是因为图像未指定内在高度,要么是因为图像数据不可用于获取此信息,则naturalHeight
返回 0。
示例
此示例显示了图像的自然密度调整大小及其由页面 CSS 和其他因素更改的呈现大小。
HTML
html
<div class="box">
<img
src="/en-US/docs/Web/HTML/Element/img/clock-demo-400px.png"
class="image"
alt="A round wall clock with a white dial and black numbers" />
</div>
<pre></pre>
HTML 包含一个 400x398 像素的图像,该图像放置在<div>
内。
CSS
css
.box {
width: 200px;
height: 200px;
}
.image {
width: 100%;
}
上面 CSS 中需要注意的主要内容是,用于绘制图像的容器的样式宽度为 200px,并且图像将绘制以填充其宽度 (100%)。
JavaScript
js
const output = document.querySelector("pre");
const image = document.querySelector("img");
image.addEventListener("load", (event) => {
const { naturalWidth, naturalHeight, width, height } = image;
output.textContent = `
Natural size: ${naturalWidth} x ${naturalHeight} pixels
Displayed size: ${width} x ${height} pixels
`;
});
JavaScript 代码将自然大小和显示大小转储到<pre>
中。这是在图像的load
事件处理程序的响应中完成的,以确保在尝试检查其宽度和高度之前图像可用。
结果
规范
规范 |
---|
HTML 标准 # dom-img-naturalheight-dev |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。