优先级的计算方式是根据选择器与每个选择器中的权值来计算。 选择器的优先级可以分为以下四种(从高到低): - !important 优先级最高,会覆盖所有其他样式。 - 内联样式:以style属性为例,因为它直接作用于元素,所以它的优先级比其他选择器都高。 - ID选择器:每个ID选择器都为100,如果有多个ID选择器,则以第一个出现的为准。 - 类,伪类和属性选择器:这几者优先级相同,都是10,如果有多个这种选择器,则以最近的一个为准。例如,.box:hover和.box:before,两者的优先级相同,但.box:hover的优先级较高。 - 标签和伪元素选择器:一般情况下,它们的优先级都为1,如果有多个标签选择器,则以最近的一个为准。
根据这个规则,大家就可以很清楚地知道哪个样式会被应用。如下代码:
<div id="content" class="box"> <p class="title">CSS优先级规则</p> </div>
对应的CSS样式:
#content.box p.title { color: red; } .box:hover { color: green; } .title { color: orange; }
由于style属性上设置了!important,所以这个元素的文本颜色将会是蓝色,而不是其他样式(不带!important的)中定义的颜色。因此,!important优先级最高。
总的来说,样式的优先级越高,就越容易被应用。当出现冲突时,按照优先级高低来决定应用哪个样式。同时,在书写CSS样式时,应该注意避免过度嵌套,让样式层次结构简单易懂,便于维护。