所以,我有一个 SVG 文件被嵌入到我的 HTML 中,未压缩(保留其原始的节点格式)。它包含几个组,除了三个组外都是隐藏的(显示==“无”)。根据用户的选项,我动态切换隐藏组和可见组,利用映射到适当可见性选项的父类。我的目标是获取生成的 SVG 节点,内联与父类对应的应用样式,并在用户完成处理后将其提交给服务器以作为光栅图像进行处理。
在我获取整个节点树并将其转换为字符串之前,是否有一种快速、跨浏览器兼容的方法来迭代应用于节点的所有样式并将它们与脚本内联? vanilla JavaScript/CoffeeScript 解决方案是理想的。 Snap.svg如果需要,可以使用。
我问,因为看起来我唯一的其他选择是将动态样式移植到 JavaScript,引入不必要的刚性(由于需要编辑的多个点而进行更复杂的更新,等等)。
最佳答案
您应该能够将定义父类的 CSS 规则放入 SVG 中的 style
元素中。然后像现在一样切换您的组。如果您现在将整个 SVG 片段发送到您的光栅器,包括它内部的 style
标签,它将具有所有必要的 CSS 信息并且应该能够正确呈现 SVG,没有 你必须遍历整个树并内联所有样式。
关于javascript - 将外部 CSS 作为内联样式应用于 HTML 节点(vanilla Javascript/Coffeescript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31351016/