2012-03-06 53 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