HTML如何解析<font color =“testing”>?

这个问题在这里已经有了答案:

  • 为什么HTML认为“chucknorris”是一种颜色? 8个答案

  • 它实际做的是将其分成RGB值,而不是十六进制颜色值。 所以你没有创建#0e0000 ,你正在创建RGB(0e0, 000, 000) 。 既然我们知道000只是0 ,我们只需要看看它的0e0部分。 从这里开始,如果超过2位数字,则需要将前导0删除为两位数字,然后截断数字中的两位左数字,从而得到e0 。 当你把它从十六进制转换成十进制时,你最终会得到e0 = 224 。 这给你的是RGB(224, 0, 0) ,或者大部分是红色。

    更多例子:

    eesting   => ee00000   => ee0 000 000 => RGB(ee0, 000, 000) => RGB(ee, 00, 00) => RGB(238, 0, 0)
    eeeting   => eee0000   => eee 000 000 => RGB(eee, 000, 000) => RGB(ee, 00, 00) => RGB(238, 0, 0)
    eeeeing   => eeee000   => eee e00 000 => RGB(eee, e00, 000) => RGB(ee, e0, 00) => RGB(238, 224, 0)
    eefeefeef => eefeefeef => eef eef eef => RGB(eef, eef, eef) => RGB(ee, ee, ee) => RGB(238, 238, 238)
    teeteetee => 0ee0ee0ee => 0ee 0ee 0ee => RGB(0ee, 0ee, 0ee) => RGB(ee, ee, ee) => RGB(238, 238, 238)
    0f0f0f    => 0f0f0f    => 0f 0f 0f    => RGB(0f, 0f, 0f)    => RGB(0f, 0f, 0f) => RGB(15, 15, 15)
    tftftf    => 0f0f0f    => 0f 0f 0f    => RGB(0f, 0f, 0f)    => RGB(0f, 0f, 0f) => RGB(15, 15, 15)
    ttfttfttf => 00f00f00f => 00f 00f 00f => RGB(00f, 00f, 00f) => RGB(0f, 0f, 0f) => RGB(15, 15, 15)
    

    是的,你是正确的,它正在使用以下解析算法和以下步骤首先,删除任何散列标记,然后用0代替任何非十六进制字符(0-9a-f)。

    例如:#DIXIT变成D0000。

    对于长度1-2,右边填充3个字符和0。

    例如:“0F”变为“0F0”,“F”变为“F00”。

    对于长度3,将每个数字作为红色,绿色或蓝色的值,并将该值预先设置为0。

    例如:“0F0”变为RGB(0,F,0),变为RGB(00,0F,00)或000F00。

    任何短于4位数的值都在此时完成。

    对于长度为4或更长的字段,该字段用0填充到下一个3的整数倍。对于较长的字段,此步骤很重要。

    例如:“0F0F”变为“0F0F00”

    接下来,将字符串分成三个偶数部分,从左到右分别代表红色,绿色和蓝色。

    “0F0F00”的行为与预期相同,变成RGB(0F,0F,00)。 任何6个字符的字符串都在此时完成。

    要验证上面的事情请点击这里

    要测试下面的例子的算法检查,你会得到相同的结果

    <body bgcolor="DIXIT">
    <body bgcolor="D00000">
    

    执行以下步骤来解析dixit

  • 例如D0000用0秒替换非十六进制值
  • 对于长度为4或更长的字段,该字段用0填充到下一个3的整数倍。对于较长的字段,此步骤很重要。 所以现在'D0000'将是RGB格式的'D0 00 00'。
  • 链接地址: http://www.djcxy.com/p/2503.html

    上一篇: How does HTML parse <font color="testing">?

    下一篇: How to change node.js's console font color?