如何在XHTML文档中的CSS中使用&符号并仍然验证?

时间:2011-05-18 18:51:28

标签: html css validation xhtml

我正在使用一个框架,该框架使用图像控制器从webroot外部的目录加载所有图像,这包括CSS中使用的图像。例如:

background: #FFF url(example.org/index.php?sect=loadimg&img=branding.jpg) top left repeat-x;

这似乎工作正常,但我的xhtml验证器并不喜欢CSS中的&符号用法,而使用&却根本不起作用。那么有人会知道在样式表中使用这样的&符号是否合法吗?如果没有,还有其他方法可以完成相同的图像请求吗?

1 个答案:

答案 0 :(得分:10)

只有在您针对XHTML doctype进行验证时,验证者才会投诉。在<style><script>元素中使用未转义的HTML字符仍应被视为在普通HTML(4.01和5)中都有效。

理想的解决方案是将CSS移动到外部样式表,并使用<link>@import包含它。

但是,如果您的样式必须位于<style>代码中,则可以在<style>代码中添加CDATA部分:

<style type="text/css">
/* <![CDATA[ */

/* Your CSS here */

/* ]]> */
</style>

这将导致该部分中的所有HTML特殊字符按字面处理,并且您的XHTML文档将被验证。

请注意,CDATA部分分隔符只是<![CDATA[]]>;它们包含在/* CSS评论*/中,因此浏览器不会尝试将它们解释为CSS。

XHTML中的CDATA部分为covered by the spec