将外部CSS应用于HTML节点作为内联样式(香草Javascript/Coffeescript)

Apply External CSS to HTML Nodes as Inline Style (vanilla Javascript/Coffeescript)

本文关键字:香草 样式 Javascript Coffeescript 应用于 CSS 外部 HTML 节点      更新时间:2023-09-26

因此,我有一个SVG文件被嵌入到我的HTML中,未压缩(保留其原始的节点格式)。它包含几个组,除了三个之外,其余都是隐藏的(display == "none")。根据用户的选项,我利用映射到适当可见性选项的父类,动态地切换隐藏组和可见组。我的目标是获取生成的SVG节点,内联与父类对应的应用样式,并在用户完成处理后将其作为光栅图像提交给服务器。

是否有一种快速的,跨浏览器兼容的方式来迭代应用于节点的所有样式,并使用脚本内联它们,在我将整个节点树转换为字符串之前?一个普通的JavaScript/CoffeeScript解决方案是理想的。如果需要,可以使用Snap.svg。

我问,因为看起来我唯一的其他选择是将动态样式移植到JavaScript,引入不必要的刚性(由于需要编辑多个点而更复杂的更新,等等)。

SVG允许style元素

您应该能够将定义父类的CSS规则放在 SVG的style元素中。然后切换你的组,就像你现在做的。如果你现在将整个SVG片段发送到光栅化器,包括其内部的style标签,它将拥有所有必要的CSS信息,并且应该能够正确渲染SVG, 没有,你必须遍历整个树并内联所有样式。