根据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)
{
}

最佳答案

是的,有可能并且有意这样做。虽然CSS2规范中未提及,但Selectors 3 spec中明确提及:



因此,浏览器在遇到重复的简单选择器时必须提高特异性,只要选择器有效且适用即可。这不仅适用于重复的类,而且适用于重复的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

同样,最后一个选择器中的空间是后代组合器。子组合器是>

关于css - CSS类重复以提高特异性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11572081/

10-12 12:34