2011-03-07 65 views
3

在我的網站上,我允許使用用戶生成的樣式表。但我不希望這些風格影響整個網站,只是一個單獨的部分/ div。有沒有辦法做到這一點,沒有通過整個自定義樣式表並將我的div選擇器添加到每個css規則? 例如,如果用戶有:將外部樣式表應用到特定區域

a, span{color:white;} 
div{padding:10px;} 

現在我必須分析它和替換

#mySection a, #mySection span{color:white;} 
#mySection div{padding:10px;} 
+1

我認爲你必須正確解析CSS(真的很難),或者使用'iframe'。 – thirtydot 2011-03-07 22:11:20

回答

7

不,很不幸,沒有。沒有相當於<base>標籤或類似的CSS將限制CSS規則的範圍。

您必須在每個規則中添加要應用它們的元素,或將用戶樣式的內容加載到iframe中。

+0

這就是我的想法,你能否告訴我們上面的解決方案是否合適,或者可能存在一些潛在的漏洞? – 2011-03-07 22:12:03

+0

@negative:第一個問題 - 你去掉'!important'嗎? – thirtydot 2011-03-07 22:12:56

+0

@negative上面的解決方案對我來說看起來沒問題。如果你用'#mySection'預先考慮每條規則,我就不會想到任何漏洞 – 2011-03-07 22:13:49