覆盖CSS中的属性

时间:2011-06-09 15:26:51

标签: css

#iddiv span {
    display: inline-block;
    width: 190px;
}
.myclass {
    width:10px;
}

然后我

<div id="iddiv">
    <span>hello:</span> 
    <span class="myclass">yeah</span> <br/>
</div>

我希望第一个span的{​​{1}}为190px,第二个为10px。但两者都是190px:为什么它不会超越width propoerty?

编辑:感谢您的回复。取消宽度怎么样?我不希望10px宽度,只是默认宽度,就好像它是未定义的

6 个答案:

答案 0 :(得分:27)

您始终可以使用!important标记来覆盖:

.myclass {
    width: 10px !important;
}

答案 1 :(得分:11)

因为id + selector(#iddiv span)比类更具体。任

#iddiv span.myclass

#iddiv .myclass

适用于此案例。

详细了解CSS特异性here或谷歌搜索。

答案 2 :(得分:5)

CSS根据选择器的特异性来应用样式

#iddiv spanmyclass更具体。将其更改为#iddiv .myclass应该可以解决问题。

以下是一篇更深入的文章:http://htmldog.com/guides/cssadvanced/specificity/

答案 3 :(得分:1)

它不起作用,因为第一种风格更具体。

要解决此问题,请确保直接定位第二个span,例如

#iddiv span.myclass

http://jsfiddle.net/jasongennaro/5fe9A/

答案 4 :(得分:1)

首先,我建议您正确定位您的选择器,正如其他人所建议的那样。

但是当其他所有方法都失败时,您可以使用!important

答案 5 :(得分:1)

请记住使用关键字!important,其功能可覆盖父规则。

您还可以通过以下方式定义“myclass”:

#iddiv span.myclass {
    width:10px;
}