解决Safari浏览器使用SVG foreignObject 不生效,错位的问题
foreignObject 在safari下渲染,有可能会遇到以下问题: 节点内的元素被渲染到父 SVG 的坐标 0,0(左上角),这是由于 Safari 中的一个错误,该错误会影响 foreignObject 根据顶部 SVG 而不是外部对象本身来计算渲染位置。某些样式会导致这个问题:
position(可以使用 position:fixed 但这会引入溢出问题,比如缩放与移动时出界)webkit-transform-stylewebkit-backface-visibilitytransitiontransformcalc可能无法按预期工作opacity。
检查浏览器是否是 Safari,然后删除这些样式,注意 foreignObject 内部所有的样式都不能包含这些样式.
PS: 如何判断浏览器为Safari:
export const IS_SAFARI = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);