2011-05-18 57 views
6

我正在使用圖像控制器從webroot之外的目錄加載所有圖像,並且這包括在CSS內使用的圖像。例如:如何在XHTML文檔中使用CSS中的&符號並仍然驗證?

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

這似乎是工作不錯,但我的XHTML驗證不喜歡在CSS中使用的符號,以及使用&,而不是完全不工作。那麼誰會知道在樣式表中使用這樣的符號是否合法?如果沒有,是否有其他方式來完成相同的圖像請求?

回答

10

驗證器只會在您針對XHTML文檔類型進行驗證時纔會投訴。在<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

+0

聽起來像一個很好的解決方案,爲非常讚賞的信息歡呼 – Spoonface 2011-05-18 19:08:26

+0

是的,我一直在使用這個解決方案,它爲我提供了很好的服務。 – BoltClock 2011-05-18 19:15:09

相關問題