1
HTML 5 specifiction定义:如何计算SVG图像的固有尺寸?
的IDL属性
naturalWidth
和naturalHeight
必须返回图像的固有宽度和高度,以CSS像素,如果图像是可用的,否则为0。
这是清楚JPG,PNG,GIF的固有宽度和高度是如何计算的 - 它们在px中都有固定的尺寸。但我无法找到这些维度是如何计算SVG图像的。
我做任意SVG图像的实验和它在不同的浏览器将返回不同的值:
- 铬 - 137×150
- 火狐 - 0 X 0
- 的Safari - 返回的尺寸DOM元素而不是固有尺寸
那么是否有任何规范定义它应该如何表现?为什么Chrome会返回这些值?我可以理解在Safari和Firefox中实施的行为,但Chrome正在做一些有趣的事情。
const width = document.getElementById('img').naturalWidth;
const height = document.getElementById('img').naturalHeight;
document.getElementById('result').innerText = `Width: ${width}\nHeight: ${height}`;
<img id="img" src="https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/android.svg">
<div id="result"></div>