角度括号是否需要在嵌套样式元素中进行HTML转义?

时间:2017-05-11 17:24:00

标签: html css

假设您的HTML文档中包含以下内容:

<style>
  ul.foo > li {
    /* etc */
  }
</style>

HTML格式的有效语法是将大于子选择器转义为$gt;吗?

<style>
  ul.foo &gt; li {
    /* etc */
  }
</style>

我理解not necessary,但这是好形式吗?

1 个答案:

答案 0 :(得分:3)

它是有效的HTML,但不是有效的CSS,因为嵌入的样式表根本没有被解析为HTML;它被解析为CSS,这意味着从字面上看function\s+(?<functionName>\w+)\s*\((?<functionArguments>(?:[^()]+)*)?\s*\)\s*(?<functionBody>{(?:[^{}]+|(?-1))*+}) &gt;不是有效的选择器,因此它不是有效的CSS。

这只适用于HTML;在XHTML中, 有效,浏览器 将<{1}}解码为&gt;,然后将样式表解析为CSS。以下数据URI演示了这一点:

&gt;

就像在HTML中一样,在这个特定的上下文中没有必要,因为你链接的问题中给出的原因,但它仍然被认为是格式良好的XHTML。但一般来说,将嵌入式脚本和样式表放入CDATA部分比编码每个>data:application/xhtml+xml,<html xmlns="http://www.w3.org/1999/xhtml"><head><style>ul.foo&gt;li{color:red}</style></head><body><ul class="foo"><li>Foo</li></ul></body></html> <更受欢迎:

>