【发布时间】:2013-05-15 08:17:51
【问题描述】:
我正在尝试为带有与其文本颜色相同的阴影的框创建样式。因为我有几个框,每个框都有不同的文本颜色,所以我想避免在每个框的每个单独规则集中重复相同的颜色。
现在,背景和边框模块指出,box-shadow(也适用于text-shadow):
在哪里
<shadow> = inset? && [ <length>{2,4} && <color>? ]每个
<shadow>的组件解释如下:
...
颜色是阴影的颜色。如果颜色不存在,则使用的颜色取自“颜色”属性。1
这意味着,如果您未在给定元素上指定阴影颜色,则所使用的阴影颜色必须取自为该元素计算的文本颜色。这类似于与没有明确颜色的边框相关的行为,可以追溯到 CSS1 并且在 CSS2 中保持不变。
但是,我知道阴影并非总是如此——以前(直到 2011 年!)在 Text 模块和 B&B 模块中选择的颜色由浏览器决定。事实上,我记得过去的测试表明,一些浏览器选择了black,而另一些浏览器选择了transparent(或者完全忽略了阴影样式)。这甚至可能在text-shadow 和box-shadow 之间有所不同。当然,这是可以理解的,因为如前所述,当时浏览器选择的任何颜色都可以。
但是现在定义已经明确,所有浏览器的最新版本也反映了这一变化,我能做些什么来让旧版本效仿吗?我知道我可以多次指定颜色——一次用于文本,一次用于每个阴影——但就像我说的那样,如果可能的话,我想避免这种情况。
1请注意,在撰写本文时最新的 2012 年中期,同一部分中的较早声明与此处引用的声明相矛盾,但此处引用的声明是规范的;请参阅 this mailing list thread 和已修复此问题的 ED。
【问题讨论】:
标签: cross-browser css