浏览器解释 HTML 并在解释时显示结果。那么为什么第一个类属性不被第二个覆盖。
<span class ='first' class= 'second' >text</span>
但如果我这样做
<span class ='first' class= 'second' style='color: green'>text</span>
所有以前的样式都被覆盖。
这是小提琴。
谢谢你。
两次具有相同的属性是无效的 HTML,浏览器会执行错误恢复。
具体来说,从规范:
当用户代理离开属性名称状态时(如果合适,在发出标记令牌之前),必须将完整的属性名称与同一令牌上的其他属性进行比较;如果令牌上已经有一个具有完全相同名称的属性,那么这是一个解析错误,并且必须删除新属性以及与之关联的值(如果有的话)。
所以第二个类属性被忽略,因为开始标签已经有一个类属性。
(请注意,您可以在一个元素上指定多个类,因为该属性采用空格分隔的列表class="first second"
:)
样式属性不会覆盖类属性。该元素将具有与之关联的两个属性。但是,当应用样式表时,样式属性规则将比具有类选择器的规则具有更高的特异性,因此样式属性中指定的属性将赢得级联。
首先语法无效,class
标签内只能有 1 个属性。
并且就超载而言,inline styles
在 CSS 中具有最高优先级。
使用多个类的正确方法是这样的
<span class ='first second'>text</span>
一个 html 元素只能有 1 个class
(或任何其他类型的属性中的 1 个),所以第二个元素总是会被浏览器拒绝(即使它看起来像元素有 2 - 实际上它只有一个)
规则是style
元素上的属性将始终优先于样式中的样式class