- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我很好奇 currentColor 以及当它被继承 和/或用于其他属性时它的行为方式。另一个方面是在 border-property 中省略颜色值,例如默认为文本颜色。
.outer {
color: #f90;
border: 5px solid;
box-shadow: 0 0 15px;
text-shadow: 2px 2px 3px;
}
<div class="outer">
Outer Div
</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;
}
<div class="outer">
Outer Div
<div class="inner">
Inner Div no CurrentColor
</div>
</div>
在 IE11 和 Chrome 43 中,只有 Text-Color 是石灰色。
另一方面,在 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 */
}
<div class="outer">
Outer Div
<div class="inner">
Inner Div no CurrentColor
</div>
</div>
<div class="outer currentColor">
Outer Div
<div class="inner">
Inner Div with CurrentColor
</div>
<div class="inner resetting">
Inner Div with CurrentColor
</div>
</div>
如果您想尝试一下,这里还有一个 dabblet 链接:
http://dabblet.com/gist/587ea745c7cda7a906ee
最佳答案
所以,这里有几件事:
CSS 工作组同意在 CSS 颜色级别 3 和 CSS 颜色级别 4 之间更改 currentColor 的含义。在 level 3 ,它在计算值时被解析并且计算值被继承;在 level 4 ,关键字 currentColor 作为计算值继承,并在使用值时解析。
进行此更改的原因有很多,但我找不到 session 记录,而且我忘记了所有细节。 (我可以在 https://lists.w3.org/Archives/Public/www-style/2014Feb/0052.html 找到讨论事后更改的 session 记录。)它使过渡/动画变得更糟,但在许多其他情况下会更好。它稍微增加了实现的复杂性,但提高了性能(至少在 Gecko 中)。
我认为大多数实现还没有机会更新到第 4 级的新规则。Gecko 当然没有,尽管它在我要做的事情列表中(但不在顶部)。
Firefox 长期以来(早在 currentColor 存在之前)就实现了一个特殊的内部值作为 border-*-color 和 outline-color 的初始值。 (我们也对 text-decoration-color 做同样的事情,但自 1998/1999 以来就没有这样做过。)这就像 4 级 currentColor 一样工作,所以一旦我们切换我们的实现,我们就可以统一这两个东西,但我们不能' 用 3 级 currentColor 切换我们的实现,因为如果它是属性的初始值,这将是一个显着的性能和内存命中。 (实际上,统一我们的实现意味着对所有其他采用颜色值的属性执行与我们为这些属性所做的相同的工作。)
text-shadow 和 box-shadow,当颜色被省略时,已经明确指定当颜色被省略时的行为等同于级别 4 定义 currentColor 的方式,甚至在 currentColor 以这种方式工作之前:见box-shadow的定义| (text-shadow的定义就是指向box-shadow)。
关于css - 理解css继承currentColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29274035/
是否有像 currentcolor 这样的关键字可以让我们在默认状态下获取类的颜色? 例如,我正在尝试创建一个可重复使用的按钮样式,在我尝试创建 :hovered 状态之前,currentcolor
有没有办法取消或删除fill: currentColor? .svg-icon * { /* Targets all sub-elements so we can deliver icons wi
我自定义链接。我希望 border-color 取决于 color。为此,我使用 CurrentColor。 如何制作不透明度为 0.5 的border-bottom? a { text-deco
我从 font awesome 为 android 中的应用程序下载了一个 svg 图标,当我创建矢量 Assets 时我导入了我的 svg,但是当我尝试编译它时出现以下错误 error: 'curr
当通过自定义属性将 color 设置为 currentColor 时,它不起作用。 无论属性是在 :root 还是 .selector 范围内设置。 但是当它被直接设置为 currentColor 时
当我用不同的颜色值属性动态设置元素的类时,渐变 currentColor 值保持不变。现场示例:http://codepen.io/neilhem/pen/jbWRZZ div { width:
与 How do I have an SVG image inherit colors from the HTML document? 相同的问题, 但特别是当应用于用作 :before 伪元素内容的
我正在尝试使用 CSS currentColor作为边框颜色使用 :after content 生成 CSS 三 Angular 形。这在我试过的所有浏览器中都很好用,除了一个:Safari 似乎从它
如果 currentWidth 存在就好了。规范中是否还有其他类似 currentColor 的内容? 最佳答案 您正在请求一个值列表,其计算值与其他值相关。 而且这个列表很短。如果我们梳理 CSS
请看这个最小的例子 .inherit { color: red; } .inherit p { color: inherit; } .currentColor { color: red;
我不经常使用 currentColor,但当我使用时,它非常有用。 所以我对 CSS 变量的到来感到有点兴奋。 让我们以红绿灯为例。 注意日本交通灯会从红色变为琥珀色再变为蓝色,请相信我。我知道这很难
在最新的 Chrome 版本 (49) 中有一个错误,其中 CSS 就像...... background: linear-gradient(currentColor, green); …当元素的 c
background: linear-gradient(7deg, currentColor 50%, transparent 50%) 元素的颜色是 一旦您在 IE 中检查该元素,它就会显示特异性
假设我有以下 HTML: Link 1 Link 2 以及以下 CSS: a { color: white; } a:hover { color: green; } #link1 span { col
长话短说 这是一个 fiddle (谢谢@NicoO):在 Safari 中,初始的“红色”颜色会应用于 currentColor 的所有其他实例。 . 如何使用 CSS 修复 currentColo
我正在尝试使用 Tailwind CSS 让 SVG 在暗模式下更改颜色。这意味着我必须使用像 text-white 这样的类来设置 SVG 的填充颜色(转换为 --tw-text-opacity:
我是一名优秀的程序员,十分优秀!