css `currentColor`和`inherit`

1. currentColor 是什么?

currentColor 是 CSS 里的一个特殊“关键字值”,表示:

使用当前元素的 color(文字颜色)作为值。

意思是:
无论你给元素的 color 设置成什么,使用 currentColor 的属性都会跟着变。

例子

div {
  color: red;        /* 文本颜色是红色 */
  border: 1px solid currentColor;  /* 边框自动跟随 color */
}

最终 border = 红色。

📌 常见使用场景:

  • SVG 图标(让图标自动跟随文本颜色)
  • 给 border / outline / box-shadow 使用同色
  • 统一主题色的组件

2. inherit 是什么?

inherit 的作用是:

明确要求:从父元素继承这个属性的值。

例如:

.parent {
  color: blue;
}

.child {
  color: inherit;   /* 继承父元素的 blue */
}

⚠️ 并不是所有 CSS 属性默认就继承,举例:

属性默认是否继承用 inherit 会怎样
color✔ 默认继承子继续继承父
border❌ 不继承用 inherit 后才会继承父的 border
display❌ 不继承inherit=继承父 display

🎯 3. currentColor vs inherit(核心区别)

特性currentColorinherit
基于什么?基于当前元素自己的 color基于父元素的属性值
用途让多个属性共享同一种颜色强制属性从父元素继承
行为不管父是谁 → 永远使用自己 color完全依赖父元素属性
是否作用于非 color 属性✔(border/background 等)✔(所有属性)

举例说明区别

例子 1:父蓝色,子红色
.parent { color: blue; }
.child  { color: red; border-color: currentColor; }

结果:
子元素 color = red
border-color = red(因为 currentColor 指向“子自己的 color”)


.child { border-color: inherit; }

结果:border = blue(继承父)


🔥 总结一句话:

currentColor = 当前元素自己的 color 的别名。
inherit = 从父元素继承属性值。

这两个完全不是一个用途。


🧩 4. initial / unset

initial

恢复为 CSS 规范的“默认初始值”,不跟父元素有关。

例如 color 初始是 black

div { color: initial; }  /* 相当于 color: black */

unset

  • 如果属性默认继承 → 表现为 inherit
  • 如果属性默认不继承 → 表现为 initial

是“最智能的重置”。


📌 最终超简表(收藏版)

关键字作用
currentColor使用当前元素的 color 属性值
inherit强制从父元素继承
initial使用属性的规范初始值
unset继承属性时等于 inherit;否则等于 initial
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

网开三面

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

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

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

打赏作者

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

抵扣说明:

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

余额充值