前几天我只是和埃里克·迈耶(Eric Meyer)聊天,我想起了我成长时代的埃里克·迈耶(Eric Meyer)的故事。我写了一篇有关CSS特异性的博客文章,而埃里克(Eric)花时间指出了它的误导性质(我记得急切地更新它)。什么是如此误导?我将特异性描绘成基本10号系统的方式。
假设您选择了ul.nav的元素。我在帖子中暗示,该选择器的特异性是0011(基本上是11个),这是基本10系统中的一个数字。所以我说的标签= 0,类= 10,ids = 100和样式属性= 1000。如果在类似的基本10个数字系统中计算特异性,则像ul.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav(11 class names)将与0111的特殊性相同,是与0111的特定性。那不是真的。现实情况是(0、0、11、1)与(0、1、0、1),后者很容易获胜。
像我刚刚使用的逗号分隔的语法解决了两个问题:
我喜欢(x,x,x,x)外观。我可以看到将其限制为(x,x,x),因为样式属性不是完全选择器,并且通常不会以相同的对话进行讨论。 Parens对我来说更清楚,但是我也可以看到不需要它们的XXX(dash分隔)语法,或者可能会从Parens中受益的(x / x / x / x)语法。
Selectors 3级使用破折号。 2级在不同地方使用了破折号和逗号。
无论如何,显然我会发现一个bug每半个十年左右。
以上是让我们使用(x,x,x,x)来谈论特殊性的详细内容。更多信息请关注PHP中文网其他相关文章!