CSS样式被覆盖 - 选择器不够具体?

时间:2013-10-13 13:17:58

标签: javascript html css css3

不应用CSS类中的样式(由其他选择器覆盖)。我该如何解决?

HTML:

<body class="expertmode">
  <div id="gallery">
    <img class="appearing">
    <img class="appearing">
  </div>
</body>

CSS:

#gallery {...}
.expertmode #gallery {...}
#gallery img {...}
.expertmode #gallery img {...}
.appearing {...}

问题.appearing中的样式会被.expertmode #gallery img的样式覆盖。我不希望这样。如何使.appearing中的样式具有更高的优先级?

更多信息:

  • .appearing是一个类,当它们插入到库中然后被删除(javascript)时首先应用于新图像,以便触发使图像很好地滑动的CSS3过渡。该类似乎正在工作,因为如果我在.appearing选择器中设置了另一个选择器中不存在的属性,则它们可以正确地应用于图像。
  • .expertmodebody可以拥有或没有的类。对于这个问题无关紧要,我无法摆脱它。

2 个答案:

答案 0 :(得分:2)

使用此选项将新样式添加到标准img属性

.expertmode #gallery img.appearing {...}

答案 1 :(得分:0)

使用!important指令。例如

.appearing {color: navy !important;}

!important规则是一种制作CSS级联的方法,但也包含您认为最重要的规则。无论CSS规则中出现哪个规则,都将始终应用具有!important属性的规则。因此,如果您想确保始终应用属性,则应添加!important属性。但是,这绝对是最后的手段。最好以更有条理的方式创建样式。