【发布时间】:2012-09-14 00:59:16
【问题描述】:
我的 UI 样式表中有一个类设置,以及一个用户可以使用颜色选择器设置页面样式的首选项部分。这些值以十六进制形式存储在数据库中,但是当我使用这些值通过 jQuery 更新页面时:
$nav.css("background-color", button_bg_color)
我失去了新的 :hover 颜色。非悬停颜色正确更改,但我看到它们被转换为 RGB 格式,我猜这会导致 :hover 值出现问题。 我想我可以更改我的代码并在悬停时更改类来解决这个问题,但是有没有办法让 jQuery 使用十六进制值设置颜色?还是我还缺少其他东西?
更新: James Montagne 是对的,因为你不能改变 :hover 效果,所以我把它改成了一个类。现在,使用 hover() 函数,我仍然缺少一些东西: 小提琴:http://jsfiddle.net/Y9EBt/6/
【问题讨论】:
-
它们没有转换成 RGB,浏览器的检查器显示为 RGB,但是 RGB(r,g,b) 和 #rrggbb 格式完全相同
-
你是这个意思吗? jsfiddle.net/T3ZAg 在这种情况下,您的问题是由 jQuery 的
.css()方法引起的,该方法将颜色设置为内联样式。然后,此内联样式会覆盖样式表中的:hover声明。 -
如果您需要保留悬停样式,只需在样式中添加
!important -
你能提供一个小提琴,以便更容易回答你的问题
-
我现在会处理小提琴 - 但问题不是失去原来的 :hover ,而是新的 :hover 没有生效。而且,检查员在页面加载时将颜色值显示为十六进制,但在更改后显示为 rgb 是否正常?我知道它们最终是相同的值,但是对于 CSS,它们可以有不同的解释吗?