【问题标题】:Child and parent element, both with RGBA backgrounds. How do I determine the "equivalent" rgba?子元素和父元素,都具有 RGBA 背景。如何确定“等效”rgba?
【发布时间】:2015-02-24 21:21:00
【问题描述】:

说我有:

<div class="dark">
    <div class="lite"></div>
</div>

<div class="medium"></div>

还有一些 CSS:

.dark {background:rgba(10,10,10,0.8);}
.lite {background:rgba(200,200,200,0.5);}

如果我希望 medium 与组合 dark &gt; lite 具有相同的 rgba 值,需要进行什么计算?我认为一个简单的归一化计算(归一化每个颜色分量并相乘)会起作用,但情况似乎并非如此。

【问题讨论】:

    标签: css background background-color rgba


    【解决方案1】:

    这样的计算不能使用 CSS 来完成,但你的目标可以使用 background-blend-mode: multiply 来实现。但是,这尚未得到广泛支持:http://caniuse.com/#feat=css-backgroundblendmode

    你可能需要一个 JavaScript 解决方案,看看那些 jQuery 插件: https://github.com/farski/jquery-blend/ https://github.com/jquery/jquery-color/

    此外,根据您的问题的性质,可能可以使用 CSS 预编译器来解决它,但这仅在您需要一次获取此颜色时才有效,而不是动态地。

    在 LESS 中就这么简单:

    @dark: rgba(10,10,10,0.8);
    @lite: rgba(200,200,200,0.5);
    
    .dark {background: @dark;}
    .lite {background: @lite;}
    .medium {  
        background-color: mix(@dark, @lite, 50%);  
    }  
    

    【讨论】:

    • 我想他只是想知道如何计算它,这样他就可以将适当的值分配给.medium,而不必在in CSS 中执行计算。
    • 是的,我所追求的只是数学公式。
    • 这可能对您有所帮助:stackoverflow.com/questions/1892020/…
    猜你喜欢
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 2018-11-28
    • 2012-12-07
    • 2016-06-29
    • 1970-01-01
    相关资源
    最近更新 更多