2010-07-28 47 views
0

我想创建一个div标签,其左侧有一个图标和一些文本。显示默认图标,并且如果在div上设置了类别,则替换图标

现在使用jQuery,如果发生事件,我正在向该div标签添加一个类,以便该图标被替换为另一个图标。

我有jQuery的一面,但我不知道如何通过CSS做到这一点。

我的CSS:

<div id="tag-user" class="usertag selected">Some tag</div> 

.usertag 
{ 
    background:url("/Images/tag.png") no-repeat; 
} 

.usertag .selected 
{ 
    background:url("/Images/tag-selected.png") no-repeat; 
} 

的形象似乎并没有被出现,所以我想我的CSS是错误的。

回答

0

尝试删除图片前的斜杠。例如

background:url("Images/tag-selected.png") no-repeat; 

您正在定义绝对路径。您需要使用图像的相对路径。

+0

为什么我需要使用相对路径? – Blankman 2010-07-28 18:05:55

+0

你的网页目录通常是/home/domain/public_html/images/img.jpg - 你告诉它看起来/图像不存在。要么尝试它,要么不让我知道它是否无效。 – Martin 2010-07-29 08:21:54

+0

mattk有正确的理由 – 2010-07-29 16:22:21

1

你有你的类名之间的空间,它应该是

.usertag.selected 

因为.selected是.usertag在相同的元素。

.usertag .selected与.selected类匹配的元素是里面的 .usertag。

请注意,多个类选择器在ie6及更低版本中不起作用。如果你需要使用下层浏览器的兼容性考虑应用usertag选择和改变你的CSS来

.usertag 
{ 
    background:url("/Images/tag.png") no-repeat; 
} 

.usertag-selected 
{ 
    background:url("/Images/tag-selected.png") no-repeat; 
} 

usertag选择将覆盖usertag因为它是后声明。

相关问题