2012-03-06 85 views
4

我使用的是::selection CSS構造。假設我的文本是用白色背景寫成黑色的,但是對於一些用藍色,綠色或紅色書寫的元素。我想在被選擇時,文本的顏色和背景顏色都swaped:普通文本傷口是黑底白字,紅色文本將是紅底白字,等...CSS :: selection自動調換顏色和背景顏色

當然,我知道如何通過爲我擁有的每種文本制定特定的規則來做到這一點。但是我想知道是否存在一種簡單的方法來自動執行此操作,而不必考慮所有可能的文本類型。

回答

4

不幸的是,沒有辦法來自動做到這一點:我們要以指定的字體顏色最接近的是background-color: currentColor,但一旦你設置color爲其他任何值,currentColor將採取新的價值,而不是原來的。

含義,這條規則:

::selection { 
    background-color: currentColor; 
    color: white; 
} 

真要同時設置文本顏色和背景顏色爲白色,因爲currentColor最終計算到white,在color: white聲明後服用。這與您是否在background-color聲明之前或之後放置它無關。

下面是一個interactive fiddle向你展示我的意思。

+0

感謝您的詳細解釋! – Bruno 2012-03-06 14:33:09