【问题标题】:CSS ::selection automatically swap color and background-colorCSS ::selection 自动交换颜色和背景颜色
【发布时间】:2012-03-23 17:02:38
【问题描述】:

我正在使用::selection CSS 结构。假设我的文本是在白色背景上用黑色书写的,但对于某些以蓝色、绿色或红色书写的元素。我希望在选中时,交换文本的颜色和背景颜色:普通文本缠绕为黑底白字,红色文本为红底白字,等等......

当然,我知道如何通过为我拥有的每种文本设置特定规则来做到这一点。但我想知道是否有一种简单的方法可以自动执行此操作,即无需考虑我拥有的所有可能类型的文本。

【问题讨论】:

    标签: css css-selectors pseudo-element


    【解决方案1】:

    不幸的是,无法自动执行此操作:我们必须采用指定字体颜色的最接近的方法是 background-color: currentColor,但是一旦您将 color 设置为任何其他值,currentColor 将采用该新值原作。

    意思,这条规则:

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

    实际上会将文本颜色和背景颜色都设置为白色,因为currentColor 最终计算为white,在color: white 声明之后。这与您将其放在 background-color 声明之前还是之后无关。

    这是一个interactive fiddle,向您展示我的意思。

    【讨论】:

    • 感谢您的详细解释!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    相关资源
    最近更新 更多