在CSS1和CSS2中定义border-color的原始值为color的值(也是说你如果你省略了border-color的值,那么他的值等于color的值),但是并没有定义一个相应的关键词。这种省略被SVG应用,随后SVG 1.0 引入了“currentColor”关键词,应用到“fill”,“stroke”,“stop-color”等接受颜色的属性上。CSS3 扩展了颜色的值也引入了currentColor做为一个色值,也就是说可以用在任何需要色值的地方,例如:background-color:currentColor;border-color:currentColor;box-shadow:currentColor;outlines:currentColor;说白了,就是你可以当它是一个“red”、“blue”这样的关键词。机灵的小伙伴可能会问,用在color上会什么样,那相关于color:inherit;啦。
支持程度:这个值最早是Opera在2009年开始支持,随后是Firefox 3.5+, Chrome 1+, and Safari 4+,IE9+
写样式的时候没有遇到自己有那么个需求要用到currentColor,background-color要是用了就会和字体一个颜色,没有意义;如果你这样border-color要是想和color一样,直接省略不写就好的呀。也许CSS3一些新的属性会让currentColor的使用变得频繁。比如:box-shadow:0 0 2px 0 #fff,2px 0 0 0 currentColor,3px 0 0 0 #fff;在这里省略了currentColor,颜色就会的都成#fff了。又比如background-image:-webkit-linear-gradient(left,transparent 30%, currentColor 100% );
用currentColor后期的修改应该会带来一些好处,可以直接覆盖color就可以调整所有的currentColor,方便不少。
在微信的X5内核里还不支持currentColor的,对于做微信的页面就不能用的了。可以在微信看demo。