首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强化伪css规则

如何强化伪css规则
EN

Stack Overflow用户
提问于 2010-05-27 04:45:48
回答 6查看 134关注 0票数 0

有什么方法可以强化伪css规则吗?即:

我有一个div(播放列表)的列表,我用以下规则着色:

代码语言:javascript
复制
#playlist .playlist_item { 
  background: #d6d6d6;
}

#playlist .playlist_item:nth-child(odd) {
  background: #b3b3b3;
}

现在,当播放一首歌曲时,我使用setInterval和JQuery的.animate函数来改变背景颜色。当歌曲结束时,我清除了间隔,但当然歌曲的背景仍然是间隔中设置的最后一个颜色。有没有办法根据CSS规则重新设置歌曲的颜色?否则,每当有人在播放列表中添加、删除或移动歌曲或歌曲结束时,我将不得不跟踪前一首歌曲(它可能改变了位置,从而改变了颜色),或者设置不同的背景颜色类别,并重新设置播放列表中所有歌曲的类别。我更愿意使用只使用CSS的方法。

提前谢谢你,丹

EN

回答 6

Stack Overflow用户

发布于 2010-05-27 05:16:53

您定义的默认背景颜色具有较低的特异性,而一半的情况具有较高的特异性。也就是说,这里有两个CSS解决方案:

首先:

代码语言:javascript
复制
#playlist .playlist_item  { /* only here for compatibility with browsers that don't understand CSS3 selectors */
  background: #d6d6d6;
}

#playlist .playlist_item:nth-child(even) { 
  background: #d6d6d6;
}

#playlist .playlist_item:nth-child(odd) {
  background: #b3b3b3;
}

如果您必须支持旧浏览器,则第一个和第二个规则不能组合,否则您可以删除第一个规则。偶数和奇数覆盖了每个案例,所以可以安全地这样做。

第二:

代码语言:javascript
复制
#playlist .playlist_item  { /* compatibility reasons again */
  background: #d6d6d6;
}

#playlist .playlist_item:nth-child(n) { 
  background: #d6d6d6;
}

#playlist .playlist_item:nth-child(odd) {
  background: #b3b3b3;
}

第二条规则与第一条规则具有相同的效果,只是优先级更高。这是CSS3 selectors - Structural pseudo-classes中的第四个示例

票数 1
EN

Stack Overflow用户

发布于 2010-05-27 04:48:54

将style属性设置为"“

例如:

代码语言:javascript
复制
node.style.backgroundColor=""
票数 0
EN

Stack Overflow用户

发布于 2010-05-27 04:49:45

我不是100%确定,但是jQuery的animate直接在元素上改变了style属性,所以,在清除间隔之后,如果你这样做了:

代码语言:javascript
复制
$(this).attr("style","");

它应该清除style属性中的任何内容,并让CSS属性再次通过。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2916660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档