2014-06-06 25 views
1

如何將頁面上的所有文本轉換爲特定顏色?將任何頁面上的所有文本轉換爲特定顏色

  1. 內容(HTML和CSS)是用戶生成的,所以我無法控制特定元素的類。由於頁面的html,類等可以有很大的不同(用戶生成),我不能寫CSS將單獨定位元素。

最初,我曾試圖在body像下面使用!important,卻忘了,任何有針對性的CSS將覆蓋它。

body { 
    color: white !important; 
} 

是我唯一的選擇使用javascript來將內聯樣式應用於每個元素?

+1

我們可以看到一些代碼嗎? –

+0

最後放置'body,table,tr,td,div {color:white!important}'。在列表中包含更多HTML標記。 –

+0

@Durgesh Chaudhary:再次閱讀問題。 – BoltClock

回答

7

使用*選擇符,不僅僅是body。

* {color: #fff !important} 
+0

這似乎只是關於'*'和'!important'的唯一合法用例(禁止爲什麼有人想要控制用戶生成的HTML *和* CSS的文本顏色和所有內容的問題...)。 – BoltClock

+0

完美,感謝豹。 –

3

您可以使用Universal selector (i.e *)選擇器選擇頁面上的任何元素:

html * { 
     color: white !important; 
    } 

,或者你可以直接使用這樣使用:

* { 
    color: white !important; 
    } 
+0

使用'html *'或甚至'html body *'更好,因爲它可以更好地抵抗可能使用'!important'設置顏色的其他樣式表。沒有絕對可靠的方式來贏得這樣的比賽,因爲對於任何選擇器,始終可以構建具有更高特異性的選擇器。 –

+0

@Jukka K. Korpela:是的,你說得對。 –

1

用戶生成的聲明,我們可以看到用戶將能夠添加一些內聯樣式,即使是!important。然後,你唯一的解決辦法是使用Javascript(jQuery的例子):

$("*").css("color", "#FFF"); 

或過濾器的HTML與HTMLPurifier,你應該使用反正過濾的javascript刪除樣式(避免許多類型的攻擊你的網站。

OLD答:(未在樣式表)

使用此您的HTML的頭內,因爲它在分隔的文件優先於樣式:

<style> 
* { 
color: #FFF!important; 
} 
</style> 
相關問題