在火狐中怎么获取svg元素的高度。

svg元素的clientHeight和offsetHeight 在火狐中是0和undefined,在chrome中正常。请问要怎么获取svg的高度呢?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<svg  id="svg" viewBox="0,0,50,50"  version="1.1" xmlns="http://www.w3.org/2000/svg">
    <rect x="0.5" y="0.5" rx="3" ry="3" width="49" height="49" fill="transparent" stroke="black" stroke-width="1"/>
    <text x="25" y="30" text-anchor="middle" font-size="14px" font-family="Yahei" fill="red">Abc</text>
</svg>
<script>
    let a=document.getElementById('svg').clientHeight;
    console.log(a);
</script>
</body>
</html>
阅读 3.6k
2 个回答

可以用 getBoundingClientRect().height解决。

具体我没有碰到过,但是可以给你一个思路。火狐浏览器的提示还是人性化的。直接去控制台查看svg高度的定义方式,如果火狐中显示0和undefined请贴出控制台error。如何能给你思路,请采纳谢谢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏