涨知识了:css 偷懒技能——currentColor

这篇文章介绍了CSS3中的currentColor关键字,它是第一个颜色变量,根据元素实际颜色动态渲染。通过实例演示了如何利用currentColor实现无缝颜色传递和镂空背景效果,以及其在子元素边框颜色和SVG应用中的便捷性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

currentColor 介绍

currentColor 是 CSS3 中增加的一个颜色关键字,是 CSS 有史以来的第一个变量。
它借鉴自 SVG,这个关键字并没有绑定到一个固定的颜色值,而是解析为 color。

有网友解释为:CSS里你可以在任何需要写颜色的地方使用currentColor这个变量,这个变量的值是当前元素的color值。如果当前元素没有在CSS里显示地指定一个color值,那它的颜色值就遵从CSS规则,从父级元素继承而来。

它可以应用于元素的 color、background-color、border 等属性中,也可以作用于 SVG 和 Canvas。

可能这样介绍,还是有些懵,下面来个例子来说明一下:

<div class="active">我是 currentColor</div>
---------------------------------------
<style>
.active{
    color:yellowgreen;
    border:1px solid currentColor;
    width:100px;
    padding: 5px 10px;
    text-align: center;
}
</style>

效果如图:

图片.png

可见虽然我们并没有给边框设定具体的颜色,但是却渲染出了跟 color 一样的颜色,是不是很方便。

currentColor 妙用

借用 currentColor 的强大特性,我们还可以制作一些绚丽的样式。

背景色镂空技术
<a href="##" class="link"><i class="icon icon1"></i>返回</a>
<a href="##" class="link"><i class="icon icon1"></i>刷新</a>

<style>
  .icon {  
        display: inline-block;  
        width: 16px; height: 20px;  
        background-image: url(../201307/sprite_icons.png);  
        background-color: currentColor; /* 该颜色控制图标的颜色 */  
    }  
 .link:hover { color: #333; }/* 虽然改变的是文字颜色,但是图标颜色也一起变化了 */
</style>

图片.png

便捷写法

如果我们要控制子元素的边框颜色与父元素文字的颜色一致,就可以在子元素中设置:

border: 1px solid;

不写颜色值,我们同样可以得到预期的效果。

此外有一点需要注意:

上述对currentColor的讨论,都是基于未给当前元素设置color颜色值的情况下,如果上述案例中的子元素自身设置了color颜色值,那么currentColor值就会被替换为该子元素当前设置的color值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码搬运媛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值