CSS3中的currentColor ,这个关键字你知道吗?

来源:程序思维浏览:1725次
CSS3中的currentColor ,这个关键字你知道吗?

这几天程序思维在研究svg图片(不了解svg的亲们,可以盯着程序思维最近的文章,小编正在着手写,马上出炉),发现了一个有趣的东东,如下:

currentColor

红色框中的currentColor,是什么东西,打开浏览器页面也没有报错,于是百度了一下,原来currentColor是css3中扩展的关键字,具体意思就是使用该关键字的元素的(或其最近父元素)color属性的颜色值。比如:

<div class=”fontcolor  myDiv”>字体图标</div>

这个div就是我们上面说的元素,它有fontcolor和icon两个class类
fontcolor的定义如下:
. fontcolor{ color:red;}
myDiv class的定义如上图片,那么currentColor就取fontcolor class上的color色值,即currentColor=”red“;
最后的结果应该是div元素中的“字体图标”字体颜色就是red。但是我们打开浏览器查看该html,发现“字体图标”字体颜色居然是类似黑色,怎么会这样?不是说是color的颜色吗,fontcolor中已定义了,查看css手册,发现了这么一句:如果currentColor关键字被应用在 color 属性自身,则相当于是 color: inherit。哦,这样我们就明白了。

我们对上面的例子再扩展一下:

<div class=”parentFont”>
<div class=”myDiv ”>字体图标</div>
</div>
parentFont class的定义如下:
.parentFont{
color:green;
}

myDiv class的定义依然如上图片,那么currentColor就取parentFont class上的color色值,即currentColor=”green“,
浏览器上查看该html,最后的结果就是div元素中的“字体图标”字体颜色就是green。有点类似:color:inherit。
小编发现currentColor这个关键字,不仅能用在color属性上,还能用在border,background-color等一切需要颜色的地方。这个关键字大家了解即可,如能巧用更好,就好像你怎么用inherit这个关键字一样。

接着我们再举一个例子:

< body style=“color:green”>
<div class=”borderDiv”>该div有边框</div>
</body>
. borderDiv{ border:1px solid currentColor;color:red;}

浏览器上查看该html ,显示如下:

该div有边框

正如我们想的一样。

接下来我们再次对它改造:

<div class=”parentDiv”>
<div class=”borderDiv”>该div有边框</div>
</div>
. parentDiv{color:green;}, borderDiv class还是如上面定义。

浏览器上查看该html ,显示如下:

该div有边框

这个结果和上面的结果一样,看来border 中的currentColor还是遵循最近原则,应用了本身borderDiv class中的color值。通过这个测试,我们也是验证了只有color:currentColor,这个color属性应用currentColor时,等同于color:inherit;

最后我们看下currentColor的兼容性:

亲测了一下IE9+没有任何问题,IE8不支持,也就是说主流移动端浏览器都兼容。我们可以放心的用这个关键字了。

再说点和这个间接相关的:

border、box-shadow、background及background-image: linear-gradient(to bottom, currentColor, #fff) 渐变色、svg中的fill: currentColor等。这些属性都可以应用currentColor关键字。

另外:
border:2px solid ;box-shadow:2px 2px;这种写法在所有浏览器上(包括IE6)也是没有问题的,默认的颜色值就是color的值。而为什么提currentColor总是要提svg,是因为currentColor这个关键字就是从svg引入的。

好了,对currentColor这个关键字的总结就到此为止,学习的同时能动手应用在项目开发中才能真正变成自己的东西,而且像这种特殊的东西,巧用能发挥更大的作用。
精品好课
VUE2+VUE3视频教程从入门到精通(全网最全的Vue课程)
VUE是目前最火的前端框架之一,就业薪资很高,本课程教您如何快速学会VUE+ES6并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习VUE高薪就...
HTML5基础入门视频教程易学必会
HTML5基础入门视频教程,教学思路清晰,简单易学必会。适合人群:创业者,只要会打字,对互联网编程感兴趣都可以学。课程概述:该课程主要讲解HTML(学习HTML5的必备基础语言)、CSS3、Javascript(学习...
React实战视频教程仿京东移动端电商
React是前端最火的框架之一,就业薪资很高,本课程教您如何快速学会React并应用到实战,对正在工作当中或打算学习React高薪就业的你来说,那么这门课程便是你手中的葵花宝典。
HTML5视频播放器video开发教程
适用人群1、有html基础2、有css基础3、有javascript基础课程概述手把手教你如何开发属于自己的HTML5视频播放器,利用mp4转成m3u8格式的视频,并在移动端和PC端进行播放支持m3u8直播格式,兼容...
Vue2+Vue3+ES6+TS+Uni-app开发微信小程序从入门到实战视频教程
2021年最新Vue2+Vue3+ES6+TypeScript和uni-app开发微信小程序从入门到实战视频教程,本课程教你如何快速学会VUE和uni-app并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己...
jQuery视频教程从入门到精通
jquery视频教程从入门到精通,课程主要包含:jquery选择器、jquery事件、jquery文档操作、动画、Ajax、jquery插件的制作、jquery下拉无限加载插件的制作等等......
最新完整React+VUE视频教程从入门到精,企业级实战项目
React和VUE是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React和VUE并应用到实战,教你如何解决内存泄漏,常用库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习Re...
最新完整React视频教程从入门到精通纯干货纯实战
React是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习React高薪就...
收藏
扫一扫关注我们