Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以覆盖默认命名的CSS颜色吗?_Css_Colors - Fatal编程技术网

可以覆盖默认命名的CSS颜色吗?

可以覆盖默认命名的CSS颜色吗?,css,colors,Css,Colors,受的启发,我想知道是否有办法用这些新颜色覆盖中定义的默认命名颜色定义 我知道我可以创建自定义CSS规则(或更少)来定义新的颜色,并将这些颜色应用到任何元素上,但这里的兴趣是例如 h1{ /* #ff0000 is current definition of red, I want to redefine it to #FF4136 */ color: red; } 更新 我被我的问题所启发,最终在Blink和WebKit源代码中进行了深入研究,从我所看到的,这些颜色是在代码中定

受的启发,我想知道是否有办法用这些新颜色覆盖中定义的默认命名颜色定义

我知道我可以创建自定义CSS规则(或更少)来定义新的颜色,并将这些颜色应用到任何元素上,但这里的兴趣是例如

h1{
    /* #ff0000 is current definition of red, I want to redefine it to #FF4136 */
    color: red;
}
更新 我被我的问题所启发,最终在Blink和WebKit源代码中进行了深入研究,从我所看到的,这些颜色是在代码中定义的

第3299行 ~157行 更新2
未来可能会有一些希望。FireFox夜间构建包含了。虽然在这一点上供应商是特定的,但它“几乎”与我的问题有关。相关的W3C规范:-参见示例4

否,这些颜色关键字是预定义的,无法从浏览器外部覆盖它们的颜色映射。这适用于您链接到的规范中定义的所有命名颜色关键字,包括基本的CSS关键字集、X11/SVG关键字和不推荐使用的系统颜色(当然,系统颜色取自系统调色板)

您将无法查询DOM元素的计算样式并动态替换它们,因为计算的颜色值总是
rgb()
rgba()
三元组,即使级联值是关键字也是如此。这在您链接到的规范中有说明:

  • 基本颜色关键字、RGB十六进制值和扩展颜色关键字的计算值是数值RGB值的等效三元组,例如六位十六进制值或RGB(…)函数值,alpha值为1
在您的示例CSS规则中,
h1
元素的
color
将是
rgb(255,0,0)
,而不是
red
。在这种情况下,您无法将
#ff0000
红色
rgb(255,0,0)
区分开来,如果您专门针对
红色
关键字,这可能会带来问题

您可以使用脚本直接解析和修改样式表,但是CSS解析并不容易。您必须考虑速记声明、url(例如,
background:redURL(redimg.png)center no repeat;
)等等。那可能超出了你的问题范围


自定义属性仅允许您指定级联变量来代替关键字作为值。您将无法使用自定义属性修改现有的预定义关键字,因此您仍然必须将每次出现的
red
替换为类似
var(red)的内容
其中
var red
属性对应于用户定义的红色。

不,我不这么认为……除了使用javascript执行奇怪的杂技来解析样式表搜索颜色外,还可以找到兼容的html对应颜色并替换它们。@abhitalks-我不同意,这些都是关于变量和自定义颜色,可以实现使用css处理器,如Hmmmm。。好啊很公平。删除之前的注释。为什么它不是CSS3中的新功能?如果可以的话,那就太好了……如果我理解正确的话,您将需要以元素/div的H1为目标,或者任何时候,您都可以覆盖它。例如#myDiv h1{color}。。。好的,我理解这个问题。我会保留它,以防有人发现它有用。这似乎正是我的代码挖掘所发现的,但我仍然对可能的解决方法抱有一些希望。
static const ColorValue colorValues[] = {
    { CSSValueAqua, 0xFF00FFFF },
    { CSSValueBlack, 0xFF000000 },
    { CSSValueBlue, 0xFF0000FF },
    { CSSValueFuchsia, 0xFFFF00FF },
    { CSSValueGray, 0xFF808080 },
    { CSSValueGreen, 0xFF008000  },
    { CSSValueGrey, 0xFF808080 },
    { CSSValueLime, 0xFF00FF00 },
    { CSSValueMaroon, 0xFF800000 },
    { CSSValueNavy, 0xFF000080 },
    { CSSValueOlive, 0xFF808000  },
    { CSSValueOrange, 0xFFFFA500 },
    { CSSValuePurple, 0xFF800080 },
    { CSSValueRed, 0xFFFF0000 },
    { CSSValueSilver, 0xFFC0C0C0 },
    { CSSValueTeal, 0xFF008080  },
    { CSSValueTransparent, 0x00000000 },
    { CSSValueWhite, 0xFFFFFFFF },
    { CSSValueYellow, 0xFFFFFF00 },
    { CSSValueInvalid, CSSValueInvalid }
};