如果我有一个定义的样式类:
.myclass{
//bunch of other stuff
float:left;
}
我定义了另一个类:
.myclass-right{
float:right;
}
我以这种方式定义div:
<div class="myclass myclass-right"></div>
div会继承myclass中的所有内容,但会将float属性覆盖为float:对吗?这就是我期望发生的事情。还有点想知道是否有任何跨浏览器的含义(良好的浏览器与IE 7或更高版本,f *** IE6)。
答案 0 :(得分:32)
只要选择器具有相同的特异性(在这种情况下它们就是这样)并且.myclass-right
样式块在.myclass
之后定义,是的。
编辑扩展:类在html元素中出现的顺序无效,唯一重要的是选择器的特殊性以及选择器在样式表中的显示顺序。
答案 1 :(得分:14)
使用!important
是一种方法。
.myclass-right{
float:right !important;
}
此外,如果您对选择器更具体,它也应该覆盖
div.myclass-right{
float:right;
}
答案 2 :(得分:12)
除了!important以及样式定义顺序之外,只想抛出另一个选项:你也可以把两者连在一起:
.myclass.myclass-right{float:right;}
.myclass{float:left;}
答案 3 :(得分:7)
只要在您的css文件中的其他类之后声明 {em},它就会起作用。
答案 4 :(得分:1)
在CSS属性发生冲突的情况下,样式表中另一个之后的CSS标记将优先。
换句话说 - 如果你想让某些类覆盖其他类 - 只需将它放在你的css文件的末尾。