当前位置: 首页 > 面试题库 >

HTML为什么认为“ chucknorris”是一种颜色?

晋涛
2023-03-14
问题内容

在HTML中作为背景色输入时,某些随机字符串如何产生颜色?例如:

<body bgcolor="chucknorris"> test </body>

… 在所有浏览器和平台上产生 背景红色 的文档。

有趣的是,虽然chucknorri也会产生红色背景,但也会chucknorr产生黄色背景。

这里发生了什么?


问题答案:

这是Netscape时代的遗留物:

丢失的数字被视为0 […]。不正确的数字被简单地解释为0。例如,值#F0F0F0,F0F0F0,F0F0F,#FxFxFx和FxFxFx都相同。

如果我们从博客文章中依次应用规则,则会得到以下信息:

  1. 将所有无效的十六进制字符替换为0

    chucknorris becomes c00c0000000
    
  2. 填充到下一个可被3整除的字符总数(11-> 12)

    c00c 0000 0000
    
  3. 分为三个相等的组,每个分量代表RGB颜色的相应颜色分量:

    RGB (c00c, 0000, 0000)
    
  4. 将每个参数从右向下截断为两个字符

得到以下结果:

RGB (c0, 00, 00) = #C00000 or RGB(192, 0, 0)

下面是一个示例,演示了该bgcolor属性的实际用途,以产生此“惊人的”颜色样本:

<table>

  <tr>

    <td bgcolor="chucknorris" cellpadding="8" width="100" align="center">chuck norris</td>

    <td bgcolor="mrt"         cellpadding="8" width="100" align="center" style="color:#ffffff">Mr T</td>

    <td bgcolor="ninjaturtle" cellpadding="8" width="100" align="center" style="color:#ffffff">ninjaturtle</td>

  </tr>

  <tr>

    <td bgcolor="sick"  cellpadding="8" width="100" align="center">sick</td>

    <td bgcolor="crap"  cellpadding="8" width="100" align="center">crap</td>

    <td bgcolor="grass" cellpadding="8" width="100" align="center">grass</td>

  </tr>

</table>

这也回答了问题的另一部分。为什么会bgcolor="chucknorr"产生黄色?好吧,如果我们应用规则,则字符串为:

c00c00000 => c00 c00 000 => c0 c0 00 [RGB(192, 192, 0)]

呈浅金黄色。由于字符串以9个字符开头,因此我们这次保留了第二个C,因此最终以最终的颜色值结束。

当有人指出您可以做到时,我最初遇到了这个问题color="crap",但是,结果变成了褐色。



 类似资料:
  • 本文向大家介绍HTML采用的是RGB颜色还是CMYK颜色?为什么?相关面试题,主要包含被问及HTML采用的是RGB颜色还是CMYK颜色?为什么?时的应答技巧和注意事项,需要的朋友参考一下 用在电脑或者手机上显示的大部分都是RGB,用于需要印刷的都用CMYK 并且不同的显示器色域不同会导致色差,不同浏览器也有自己的调色板,后面总结出来过一套web安全色,就是专用在web上大部分情况下都不会有明显色差

  • 问题内容: 我需要它的代码表示形式,例如。 问题答案: 从HTML5开始,超链接的前景色正以预期的默认呈现行为指南的形式标准化。特别是,从[短语内容部分中,未访问和访问的超链接的建议默认颜色如下: 但是请注意,活动超链接()没有建议的默认设置。 您可以使用这些默认颜色,并 合理 预期它们会起作用。但请记住,浏览器可以随意忽略任何或所有这些准则,因为从不 要求 遵循这些准则。它,但是, 建议 对跨浏

  • 今天当我重新浏览Veracode的时候重新打开了一系列的线路比如... 为什么被认为是“网页中与脚本相关的HTML标记的不正确中和(基本XSS”缺陷)?以及为什么今天突然出现,以前从未在任何其他扫描中出现过。 这似乎对我来说很好,或者如果不是,如何修复/mitagate?

  • 这个答案几乎描述了问题的前半部分。 上面写着: 看过“四人帮”的定义后,我不相信这有什么真正的区别。(为方便起见包括在内) 装饰器:允许对对象进行动态包装,以便修改它们现有的职责和行为 责任链:通过将接收对象链接在一起,使多个对象有机会处理请求 维基百科对它们做了一些补充,但有些是武断的。 > 装饰器通常作为链表实现。但我认为这太低了,不能被认为是模式的“一部分”。 责任链只处理数据,如果这是他们

  • 为什么这个字符串是数字的?那些字符代表什么?

  • 问题内容: 我已经多次听到在HTML 中使用JavaScript事件(例如)是不正确的做法,因为它不利于语义。我想知道不利之处以及如何解决以下代码? 问题答案: 您可能正在谈论简洁的Javascript,看起来像这样: 中央javascript文件中的逻辑如下所示: 优点是 行为(JavaScript)与表示(HTML)分开 没有语言的混合 您正在使用像jQuery这样的javascript框架,