CSS中层级有三种选择器:元素选择器、类选择器和ID选择器。这些选择器的权重是不同的。元素选择器的权重最低,类选择器次之,ID选择器权重最高。
如果有多个选择器和样式规则应用到一个元素上,浏览器将使用下面的规则来确定哪个样式将优先应用:
ID选择器 >类选择器 >元素选择器
当然,这只是一个简单的规则。在样式表中使用通用选择符(*)、属性选择器和伪类选择器时,会有一些不同。并且在同一个选择器中使用了多个不同的选择器,如ID选择器和类选择器,它们的位置和顺序也会影响权重。
例如:
#header .logo { /* ID选择器 + 元素选择器 + 类选择器*/ } nav ul li.active { /* 元素选择器 + 元素选择器 + 类选择器*/ }
以上两个选择器都包含三个选择器,但是它们的权重是不同的。第一个选择器中有一个ID选择器,因此它的权重更高,而第二个选择器中没有ID选择器,所以它的权重相对较低。
在编写CSS时,应该尽量避免过度使用ID选择器,因为它们的权重太高了。它们应该只用于在页面中唯一的元素(例如页眉或页脚)。