为什么第二个类属性不会覆盖前一个属性.HTML

me_*_*jay 0 html css

浏览器解释HTML并在解释时显示结果.那么为什么第一类属性不被第二类覆盖.

<span class ='first' class= 'second' >text</span>
Run Code Online (Sandbox Code Playgroud)

但如果我这样做

<span class ='first' class= 'second' style='color: green'>text</span>
Run Code Online (Sandbox Code Playgroud)

以前的所有样式都会被覆盖.

这是小提琴.

谢谢.

Que*_*tin 6

两次具有相同的属性是无效的HTML,并且浏览器执行错误恢复.

具体来说,从规范:

当用户代理离开属性名称状态时(并且在发出标记令牌之前,如果合适),必须将完整属性的名称与同一令牌上的其他属性进行比较; 如果令牌上已经存在具有完全相同名称的属性,那么这是一个解析错误,必须删除新属性以及与之关联的值(如果有).

因此,忽略第二个类属性,因为start标记已经具有class属性.

(请注意,由于属性需要一个空格隔开列表,你可以指定一个元素的多个类:class="first second")

样式属性不会覆盖类属性.该元素将具有与之关联的两个属性.但是,应用样式表时,样式属性规则将具有比具有类选择器的规则更高的特异性,因此样式属性中指定的属性将赢得级联.