【问题标题】:Converting color name to hexadecimal values将颜色名称转换为十六进制值
【发布时间】:2016-05-11 04:22:06
【问题描述】:

为了执行转换,我关注了下面的 Stack Overflow 帖子,其中介绍了转换是如何发生的以及浏览器显示颜色的方式

但是当我检查以下示例时:

<body bgcolor="a">
10,0,0
#0A 00 00


<body bgcolor="marker">
10,0,224
#0A 00 E0


<body bgcolor="kevineve">
224,14,224
#E00EE0

同样的规则没有帮助我找到 kevineve #E00EE0 的确切值

将颜色名称转换为十六进制值的规则是什么?

颜色名称可以是任何值:如下面的帖子或任何字母

堆栈溢出帖子: Why does HTML think “chucknorris” is a color?

注意:请注意akevineve的十六进制转换值

【问题讨论】:

  • 我想你的答案是here。类似的问题。
  • @user2584538 不,这里不相似,没有考虑真正的颜色名称
  • 您可以使用数据库存储或阵列之类的东西。这对你来说不可能吗..?
  • 我们不能在 db 中存储每个值都知道..颜色名称可以是任何值:所以提到的帖子或任何字母
  • @utility:你可能想看看这个——randomstringtocsscolor.com 和 HTML5 规范的完整规则集在这里——w3.org/TR/2011/WD-html5-20110525/…

标签: html css color-codes


【解决方案1】:

但十六进制值与该 SO 帖子中所述的值不同

这里是获取kevineve值的方法

  • 将每个非十六进制字符更改为 0:0e000e0e
  • 在字符串中添加 0,直到其长度为 3 的倍数:0e000e0e0
  • 将字符串分成3等份:0e000e0e0
  • 虽然子字符串的长度大于 2,并且所有三个子字符串都以 0 开头,请从每个字符串中删除前导 0。:e00ee0
  • 如果子字符串的长度仍然大于 2,则将每个子字符串截断为 2 个字符:不需要!

最终结果:#e00ee0

字符串“a”怎么来的?

  • 将每个非十六进制字符更改为 0:a
  • 在字符串中添加 0,直到其长度为 3 的倍数:a00
  • 将字符串分成3等份:a00
  • 虽然子字符串的长度大于 2,并且所有三个子字符串都以 0 开头,请从每个字符串中删除前导 0。:不需要!
  • 如果子字符串的长度仍然大于 2,则将每个子字符串截断为 2 个字符:不需要!

现在因为十六进制值是成对的两个。这意味着a00aa0000,所以:

最终结果:#aa0000

【讨论】:

猜你喜欢
  • 2011-07-31
  • 1970-01-01
  • 2015-04-12
  • 2020-04-20
  • 1970-01-01
  • 2011-12-09
  • 2011-02-28
  • 2017-01-01
相关资源
最近更新 更多