CSS多个类属性覆盖

ian*_*sme 29 css

如果我有一个样式类定义如下:

.myclass{
    //bunch of other stuff
    float:left;
}
Run Code Online (Sandbox Code Playgroud)

我定义了另一个这样的类:

.myclass-right{
    float:right;
}
Run Code Online (Sandbox Code Playgroud)

我用这种方式定义div:

<div class="myclass myclass-right"></div>
Run Code Online (Sandbox Code Playgroud)

这个div是否会继承myclass中的所有内容,但会将float属性覆盖为float:对吗?这就是我期望发生的事情.还有点想知道是否有任何跨浏览器的含义(良好的浏览器与IE 7或更高版本,f***IE6).

ste*_*eax 32

只要选择器具有相同的特异性(在这种情况下它们),并且.myclass-right样式块在之后定义.myclass,是的.

编辑扩展:类在html元素中出现的顺序无效,唯一重要的是选择器的特殊性以及选择器在样式表中出现的顺序.

  • 通过"编辑扩展"进行澄清.样式表中的顺序问题有点阴险...... (2认同)

Joh*_*ock 14

使用!important是一种方法.

.myclass-right{
    float:right !important;
}
Run Code Online (Sandbox Code Playgroud)

此外,如果您对选择器更具体,它也应该覆盖

div.myclass-right{
    float:right;
}
Run Code Online (Sandbox Code Playgroud)


str*_*ics 12

只是想除了!important以及样式定义顺序之外还要抛弃另一个选项:你也可以将两者联系在一起:

.myclass.myclass-right{float:right;}
.myclass{float:left;}
Run Code Online (Sandbox Code Playgroud)


Leo*_*Leo 7

只要在你的css文件中的其他类之后myclass-right声明,它就会起作用.