我在教一个jr。高中/高中网络编程课程,我们从简单的元素和属性开始,如字体和颜色,然后再学习 CSS。我知道 HTML5 不推荐使用颜色并且字体不包含在 HTML5 中,但出于教学目的,我发现从简单的 HTML 标记开始并逐步使用 CSS 很方便。在上课的第一周,学生们能够从改变页面颜色中获得很多乐趣。(我也在第一周教他们选框和眨眼,但告诉他们,如果他们再次使用它们,他们将失去分数)。
其中一名学生开始提交带有奇怪颜色属性值的作业,例如“Skittles”或“Spiderman”。我开始对此进行试验,发现几乎任何你放入字体标签的 color="" 属性的东西都会产生某种颜色。在最新版本的 IE、Firefox、Chrome、Opera 和 Safari 中,颜色似乎是一致的。
我发现将“LuckyCharms”作为 CSS 颜色放入是行不通的。它似乎只适用于 HTML 属性中需要颜色的地方,例如 font color="LuckyCharms" 或 body bgcolor="LuckyCharms"。
我试图向我的班级解释为什么会发生这种情况,到目前为止我还无法理解它,或者谷歌没有一个好的答案。看起来它被解释为颜色代码,但我无法理解如何。
更新:经过反复试验,我确定了一个 5 步算法(使用提供的链接)将几乎任何字符串转换为相应的十六进制颜色。我将在此处提供算法以供未来访问者启迪:
- 将每个非十六进制字符更改为 0。
- 向字符串添加 0,直到其长度为 3 的倍数。
- 将绳子分成3等份。
- 当子字符串的长度大于 2,并且所有三个子字符串都以 0 开头时,从每个字符串中删除前导 0。
- 如果子字符串的长度仍然大于 2,则将每个子字符串截断为 2 个字符。
就是这样,把子字符串放在一起,你就得到了你的十六进制颜色代码。我已经用大约 20 个不同的样本验证了这个算法,并使用 Firefox ColorZilla 附加颜色选择器比较了结果。
请注意,在这种情况下,规则确实在答案之一中指定的链接中明确说明,并且所有浏览器都将遵守。因此,您可以依靠它在任何浏览器中工作(如果您真的想使用有趣的颜色名称)。