【问题标题】:Stop Firefox rendering inline colours in rgb() form停止 Firefox 以 rgb() 形式呈现内联颜色
【发布时间】:2012-07-13 17:53:54
【问题描述】:

我正在尝试编写一个 JavaScript 工具来处理某种颜色的项目。在测试页面上,我使用内联样式设置颜色,以模仿目标页面,但在呈现页面时,使用 CSS rgb() 函数指定颜色。

HTML 尝试模拟我想要更改背景颜色的 GMail 容器。当我在 Firebug 中检查元素时,颜色显示为 rgb()。

<div style="width: 100%; height: 30px; border: 1px solid black; 
    background: #6694E3 none repeat scroll 0 0;">    
</div>

如何阻止颜色从#6694E3 转换为rgb(102, 148, 227)

【问题讨论】:

  • 您能否展示一个代码示例,说明您正在做什么以及值何时在两种格式之间切换?
  • @Eilon,请参阅我添加的示例。

标签: css


【解决方案1】:

您可能正在通过 firebug 查看值,它在控制台中将所有颜色转换为 RGB 形式。这并不意味着它在 DOM 中发生了变化。

【讨论】:

  • 我认为它在 DOM 中发生了变化,至少在 3.5 中 - 我最近修复了一个由这个问题引起的 JS 错误,代码正在寻找计算机样式的十六进制值并且它得到一个 rgb一场比赛失败了。
  • 是的,在计算 computedStyle 时,很多值都会转换为等效单位。
  • firebug 与此无关,Safari 和 Chrome 都将 style.color 呈现为“rgb(r,g,b)”,而不像 IE 总是将它们呈现为十六进制字符串“# rrggbb"
【解决方案2】:

这不是转换,只是表达同一事物的不同方式。如果要检查特定颜色,则必须首先以 rgb 格式表示,然后进行检查。据我所知,为 DOM 元素返回的 css 值是任何内容 - 您无法更改格式。

【讨论】:

  • 为什么当我在 Firebug 中查看 GMail 元素时,颜色显示为十六进制,但当我查看自己的页面时,它们显示为 rgb?
【解决方案3】:

查看 this script 将 rgb() 表示法转换为十六进制。

【讨论】:

  • +1 获取灵感。我真正需要的是一个将十六进制转换为 RGB 的脚本(以字符串形式),所以我可以在内联样式文本上使用 jQuery 过滤器。
  • James Fuller 的评论说价值观是错误的。 if you use the rgb values(120,120,240) your code returns #F07878 which is dominantly red, rather than dominantly blue
  • @Jomar 作者似乎已经修复了这个错误?
  • @Pekka웃 很好,只是想从您提供的链接中说明可能重要的 cmets。和平
猜你喜欢
  • 1970-01-01
  • 2014-04-24
  • 2020-02-25
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
  • 2016-12-06
  • 2013-05-31
相关资源
最近更新 更多