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

Spo*_*ace 6 html css validation xhtml

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

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

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

Bol*_*ock 10

只有在您针对XHTML文档类型进行验证时,验证者才会投诉.在普通HTML(4.01和5)中,非转义HTML字符<style><script>元素仍应被视为有效.

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

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

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

/* Your CSS here */

/* ]]> */
</style>
Run Code Online (Sandbox Code Playgroud)

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

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

规范涵盖了 XHTML中的CDATA部分.