根据CSS文档:http://www.w3.org/TR/CSS21/cascade.html#specificity
特异性由选择器中的属性和伪类的数量来定义(以及其他)。
所以,我的问题是,是否有可能通过一遍又一遍地重复相同的类名来增加特异性?
例如:
将会
.qtxt.qtxt.qtxt.qtxt.qtxt
{
}具有更高的特异性
.qtxt.lalgn
{
}或
.lalgn .qtxt//(space added to create child selector)
{
}发布于 2012-07-20 22:11:25
是的,这是可能的,也是故意的。虽然这在CSS2规范中没有提到,但在Selectors 3 spec中明确提到了这一点
注意:允许重复出现相同的简单选择器sic,并且确实增加了特异性。
因此,浏览器在遇到重复的简单选择器时必须增加特异性,只要选择器是有效和适用的。这不仅适用于重复的类,也适用于重复的ID、属性和伪类。
对于您的代码,.qtxt.qtxt.qtxt.qtxt.qtxt将具有最高的特异性。另外两个选择器是同样具体的;组合符在特异性计算中完全没有影响:
/* 5 classes -> specificity = 0-5-0 */
.qtxt.qtxt.qtxt.qtxt.qtxt
/* 2 classes -> specificity = 0-2-0 */
.qtxt.lalgn
/* 2 classes -> specificity = 0-2-0 */
.lalgn .qtxt此外,最后一个选择器中的空格是后代组合器;子组合器是>。
发布于 2012-07-20 12:26:00
.qtxt.qtxt.qtxt会有最高的特异性。
http://jsfiddle.net/nXBTp/1/
但是,只有在重复类名的次数超过任何其他选择器的次数时才会出现这种情况,例如:
http://jsfiddle.net/nXBTp/2/
发布于 2012-07-20 10:38:23
你不应该像这样破解细节...如果需要强制设置值,请使用!important。
https://stackoverflow.com/questions/11572081
复制相似问题