转换后的 SVG 元素上的 getBoundingClientRect() 应该返回什么?

2024-01-04

今天我测试了当你使用时会发生什么getBoundingClientRect() http://www.w3.org/TR/cssom-view/#the-getclientrects-and-getboundingclientrect-methods在已旋转的 SVG 元素上。

Test: http://phrogz.net/svg/getBoundingClientRect-on-rotated-elements.html http://phrogz.net/svg/getBoundingClientRect-on-rotated-elements.html

结果是:

  • Chrome、Safari、Opera 和 IE 似乎计算元素的本地(未转换)边界框,然后返回客户端矩形对于那个边界框。这可能会导致客户端矩形比看起来合适的大。

  • 另一方面,Firefox 会裁剪客户端矩形以适合元素本身。

 
                          Visual appearance of the two cases;  

根据规范,哪种行为是正确的?

为了它的价值,我更喜欢 Firefox 的行为 http://phrogz.net/getboundingclientrect-is-lame-for-svg,但是(不了解规格)thinkFirefox 的偏差应该是被认为是一个错误 https://bugzilla.mozilla.org/show_bug.cgi?id=755947.


非火狐浏览器似乎没有给出有用的结果,而且似乎也不符合相关规范。

The CSSOM 视图模块 http://dev.w3.org/csswg/cssom-view/#the-getclientrects-and-getboundingclientrect-methods代表 SVG 规范,该规范表示它是变换后的紧边界框 http://www.w3.org/TR/SVG/types.html#__svg__SVGLocatable__getBBox没有改变紧密的边界框,所以我坚持认为我正确地实现了它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

转换后的 SVG 元素上的 getBoundingClientRect() 应该返回什么? 的相关文章

随机推荐