热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

了解css继承了currentColor

如何解决《了解css继承了currentColor》经验,为你挑选了1个好方法。

我很好奇currentColor以及它在其他属性中继承和/或使用时的行为方式.另一方面是省略border-property中的颜色值,例如默认为text-color.

.outer {
	color: #f90;
	border: 5px solid;
	box-shadow: 0 0 15px;
	text-shadow: 2px 2px 3px;
}
Outer Div

上面的片段没什么好看的.
阴影和边框与文本颜色相同.

现在让我们继承颜色:

.outer {
    color: #f90;
    border: 5px solid;
    box-shadow: 0 0 15px;
    text-shadow: 2px 2px 3px;
}

	
	.inner {
	    color: lime;
	    display: inline-block;
	    border: inherit;
	    box-shadow: inherit;	    
	}
Outer Div
Inner Div no CurrentColor

Resutls:

在IE11和Chrome 43中,只有文字颜色是石灰.
另一方面,在Firefox 38中,阴影也是绿色.(注意不是边框)

当主动将所有内容设置为currentColor时,浏览器通过仅显示石灰中的文本和橙色中的所有其他内容显示相同的结果.(正如您在底部的最后一个片段中看到的那样)

/**
 * playing with currentColor
 */
body {background: darkgray;} /* friendly wink */ 
.outer {
	width: 85%;
	color: #f90;
	border: 5px solid;
	box-shadow: 0 0 15px;
	text-shadow: 2px 2px 3px;
	padding: 15px; margin: 15px;
}
.outer.currentColor {
	border: 5px solid;
	box-shadow: 0 0 15px currentColor;
	text-shadow: 2px 2px 3px currentColor;
}
	
	.inner {
	    color: lime;
	    display: inline-block;
	    border: inherit;
	    box-shadow: inherit;	    
	}
	.inner.resetting {
		border-color: currentColor;
		/* text-shadow-color: currentColor; /* does not exist */
		/* box-shadow-color: currentColor; /* does not exist */
	}
Outer Div
Inner Div no CurrentColor
Outer Div
Inner Div with CurrentColor
Inner Div with CurrentColor

问题:

省略currentColor时,为什么Firefox中的边框有所不同

为什么继承不使用同一元素的颜色值?

有没有办法使用相同的属性和切换颜色?(对于边框颜色,您可以通过重置它在示例中看到)

如果你想玩它,这里也是一个dabblet链接:http://dabblet.com/gist/587ea745c7cda7a906ee



1> 小智..:

所以,这里有一些事情:

    CSS工作组同意在CSS颜色级别3和CSS颜色级别4之间更改currentColor的含义.在级别3中,它在计算值时间被解析并且计算值被继承; 在级别4中,关键字currentColor作为计算值继承,并在使用的值时间解析.

    虽然我找不到会议记录,但有很多理由要做出这种改变,而且我已经忘记了所有的细节.(我可以在https://lists.w3.org/Archives/Public/www-style/2014Feb/0052.html上找到分钟来讨论事后的变化.)这会使转换/动画更糟糕,但在其他案件的数量.它略微增加了实现复杂性,但提高了性能(至少在Gecko中).

    我认为大多数实现还没有机会更新到Level 4中的新规则.Gecko肯定没有,尽管它在我要做的事情列表中(但不在顶部).

    很长一段时间(早在currentColor存在之前),Firefox已经实现了一个特殊的内部值作为border - * - color和outline-color的初始值.(我们也对文本装饰颜色做了同样的事情,但是自1998/1999以来没有这样做.)这就像4级currentColor那样工作,所以一旦我们切换实现,我们可以统一这两件事,但我们不能不要使用3级currentColor切换我们的实现,因为它是一个重要的性能和内存命中,因为它是属性的初始值.(实际上,统一我们的实现意味着我们为每个其他具有颜色值的属性执行相同的工作.)

    text-shadow和box-shadow,当省略颜色时,明确指定了省略颜色的行为,因为它等同于level 4定义currentColor的方式,甚至在currentColor以这种方式工作之前:参见box-shadow的定义(text-shadow的定义只指向box-shadow).


推荐阅读
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 本文介绍了网页播放视频的三种实现方式,分别是使用html5的video标签、使用flash来播放以及使用object标签。其中,推荐使用html5的video标签来简单播放视频,但有些老的浏览器不支持html5。另外,还可以使用flash来播放视频,需要使用object标签。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
author-avatar
耿世述_511
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有