我正在使用一个框架,该框架使用图像控制器从webroot外部的目录加载所有图像,这包括CSS中使用的图像。例如:
background: #FFF url(example.org/index.php?sect=loadimg&img=branding.jpg) top left repeat-x;
这似乎工作正常,但我的xhtml验证器并不喜欢CSS中的&符号用法,而使用&
却根本不起作用。那么有人会知道在样式表中使用这样的&符号是否合法吗?如果没有,还有其他方法可以完成相同的图像请求吗?
答案 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。