将<style>放在SVG中的哪里?

mat*_*i.o 8 svg

对不起,如果这可能是基于意见的,但我希望有一个正确的答案..

应该在SVG文档中放置内联CSS样式?在我下面提供的示例中,我定义了两个样式和一个使用它们的圆.

第一个样式在defs标签内定义,第二个样式在svg标签内定义.

这两种样式都成功显示在圆圈上(至少在Chrome中他们这样做,但是没有检查其他浏览器).

我的问题是哪种方式更标准?

我认为保持样式defs可以使整个SVG更加整洁.但是,可以声称我不应该使用defs标签,因为没有人引用样式<use>

谢谢!

<svg height="100" width="100">
    <defs id="someDefs">
        <style id="style1">
            .blue-fill {
                fill : blue;
            }
        </style>
    </defs>
    <style id="style2">
        .red-stroke {
            stroke : red;
            stroke-width : 12
        }
    </style>
    <circle cx="50" cy="50" r="40" class="blue-fill red-stroke" />
</svg>
Run Code Online (Sandbox Code Playgroud)

mat*_*i.o 5

没关系 两种方法都不是“更标准的”。<style>元素无论如何都不是可渲染的,因此没有必要将它们放在本<defs>节中

正如Paul LeBeau所说。

在阅读style有关MDN的文章之后,该文章仅显示了SVG根目录下的样式示例,我更加相信将其放在<style>此处而不是在之下是正确的<defs>

另外,由于<defs>标记确实适用于应呈现的可重用图形元素,而<style>不是可呈现的元素,因此将其保留在那里是没有意义的。