设置内联SVG时是否需要CDATA?

时间:2019-04-02 01:30:43

标签: css xml html5 dom svg

我已经读到了很多有关这一点的文章,所以我希望对它进行明确的排序。

如果我在HTML文档中内嵌了SVG标记,并且正在使用CSS进行样式设置,是否需要将该CSS封装在注释为CDATA的地方?

示例:

<!DOCTYPE html>
<html>
<head>
     <meta charset="UTF-8">
</head>
<body>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512">
        <style type="text/css">
            /* <![CDATA[ */
            .some_styles {}
            /* ]]> */
        </style>
        <!-- SVG content here -->
    </svg>
</body>
</html>

我想可能会出现诸如https://codesandbox.io/s/pjorxzyrx7被误解为XML右括号的问题,并且我读过很多人的建议,他们建议使用注释掉的CDATA内联SVG样式 CSS child combinator < / sup> 1 。但是,令我惊讶的是,我发现即使删除了CDATA并使用了子组合器,我的HTML还是得到了验证。除此之外,我无法在任何现代浏览器中检测到SVG呈现的任何问题。

2在SE上讨论过有关在<script>标签中包含CDATA的内容,但这与<svg>并不相同,因此看来这是一个自己的问题。

我不介意包括它,这样做不会造成任何麻烦。我只是想知道我是在做正确的事情还是不必要的事情。

0 个答案:

没有答案