为什么字体颜色属性中的奇怪事物会产生真实的颜色?

可能重复:
为什么HTML认为“chucknorris”是一种颜色?

我正在教小朋友。 高中/高中的网络编程课程,我们从简单的元素和属性(如字体和颜色)开始,然后再进入CSS。 我知道颜色已被弃用,字体不包含在HTML5中,但为了教学目的,我发现从简单的HTML标签开始并按照CSS的方式工作很方便。 在上课的第一周内,学生们能够在网页上更换颜色,从而获得很多乐趣。 (我还教他们在第一周选中并眨眼,但告诉他们如果他们再次使用它们,他们将失分)。

其中一名学生开始用色彩属性值中的奇怪事物提交作业,如“彩虹糖”或“蜘蛛侠”。 我开始尝试使用它,并发现几乎任何你在字体标签上加入color =“”属性的东西都会产生某种颜色。 而且看起来,IE,Firefox,Chrome,Opera和Safari的最新版本的颜色是一致的。

我发现将“LuckyCharms”放入CSS颜色不起作用。 它似乎只适用于HTML属性需要颜色的地方,例如font color =“LuckyCharms”或body bgcolor =“LuckyCharms”。

我试图向我的班级解释为什么会发生这种情况,到目前为止,我还是无法理解它,或者给Google一个很好的答案。 它似乎被解释为颜色代码,但我无法理解如何。

更新:经过一些试验和错误,我确定了一个5步算法(使用提供的链接)将几乎任何字符串转换为相应的十六进制颜色。 我将在这里提供算法来启发未来的访问者:

  • 将每个非十六进制字符更改为0。
  • 将0加到字符串中,直到其长度为3的倍数。
  • 将字符串分成3个相等的部分。
  • 虽然子字符串的长度大于2,并且所有三个子字符串都以0开头,请删除每个字符串中的前导0。
  • 如果子字符串的长度仍大于2,则将每个子字符串截断为2个字符。
  • 就是这样,将子字符串放在一起,你就得到了你的十六进制颜色代码。 我用大约20个不同的样本验证了这个算法,并使用Firefox ColorZilla附加颜色选择器比较了结果。

    请注意,在这种情况下,规则确实在其中一个答案中指定的链接中具体说明,并且所有浏览器都将遵守这些规则。 所以这是你可以在任何浏览器上工作的东西(如果你真的想使用有趣的颜色名称)。


    HTML 5规范包含解析遗留颜色的规则。

    它们相当长,并且旨在允许浏览器在处理破碎的代码方面保持一致。


    很有意思。 看起来好像浏览器会解释任何可以使用的字符(af),并且如果它不匹配,则将剩下的字符保留为0。 例如:

    Spiderman
     00DE0 A
    

    尽管如此,仍然需要更多试验。


    这是一个有趣的问题。

    通过简短的实验,我发现“幸运”产生与“LuckyCharms”相同的颜色(反正我的眼睛),但“LuckBeALady”让你变暗,而“LuckBeALadyTonight”更蓝。

    顺便说一句,我的第一个想法是,它采取了可识别的十六进制字符,但将“LuckyCharms”变成cca,从而变黑。 正如Madara Uchiba所言,0和十六进制字符的组合没有使“绿色幸运”

    没有答案tho。

    链接地址: http://www.djcxy.com/p/289.html

    上一篇: Why do weird things in font color attribute produce real colors?

    下一篇: Compiler optimization: g++ slower than intel