内联SVG代码中不需要哪些属性

时间:2018-05-25 13:52:41

标签: html svg attributes

我正在开发一个生成超强密码的项目(用于练习)。

当使用内联SVG时,我只是想知道SVG代码是否有任何不必要的属性,因为我试图让它尽可能短。

在这个特定的片段中,我有一个复制到剪贴板的图标。

以下是代码:

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     viewBox="0 0 488.3 488.3" style="enable-background:new 0 0 488.3 488.3;" xml:space="preserve">
<g>
    <g>
        <path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124
            C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124
            c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/>
        <path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227
            c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6
            V38.6C439.65,17.3,422.35,0,401.05,0z"/>
    </g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

1 个答案:

答案 0 :(得分:2)

让我们从通常多余的东西开始:

  • version="1.1"不会被我所知道的任何浏览器或渲染器解释。
  • style="enable-background:new 0 0 488.3 488.3;"虽然一般情况下设置一个样式属性可能不错,但enable-background属性为deprecated且从未在任何地方实施

以下可能会或可能不会取决于具体情况:

  • <?xml version="1.0" encoding="iso-8859-1"?>必须是符合XML的独立SVG的第一行。请注意,编码不是默认值utf-8。如果SVG在HTML中内联使用,浏览器只会忽略该行(如果它不是文档的第一行),但严格来说,它在任何其他地方的使用都会破坏XML格式。
  • xmlns:xlink="http://www.w3.org/1999/xlink"只有在某个地方使用了元素/属性时才需要定义命名空间,例如<use xlink:href="..." />。即便如此,现在大多数浏览器都支持无名称空间href
  • xml:space="preserve"仅在您拥有<text>个孩子的<tspan>元素时才有用。然后它将管理这些子标记之间的空格是否被解释为空格字符。
  • x="0px" y="0px"在独立文件中最外层的<svg>元素上,始终忽略x和y。如果SVG嵌入在其他内容中,则默认值0以外的值可能会生效,具体取决于主机语言。 (在HTML中,您可能不得不使用CSS topleft。)

最后,遗漏了什么:

    当内联使用SVG时,
  • widthheight的默认值为150px100px。 (对于独立文件,viewBox值将在缺失时使用。)
  • preserveAspectRatio的默认值为xMidYMid meet。如果viewBoxwidthheight的宽高比不匹配,它会定义viewBox如何适应SVG尺寸。