当前位置: 代码迷 >> JavaScript >> Javascript修改CSS时的CSS特异性?
  详细解决方案

Javascript修改CSS时的CSS特异性?

热度:94   发布时间:2023-06-07 18:19:15.0

当Javascript修改CSS时,CSS特性是什么?

如:

document.getElementById("demo").style.color = "red";

它被认为是内联样式吗?

Javascript修改CSS时的CSS特异性?

与通过编辑原始源代码而不是使用JS来修改CSS完全相同。

 document.getElementById("demo").style.color = "red"; 

在这种情况下,您将修改直接附加到元素的样式。

<div id="demo" style="color: red">

所以最大的特异性 ( )

如果您使用JS来 ,那么特异性将会有所不同。

通过JavaScript,您正在修改DOM树(Html文件)而不是CSS文件,因此它是内联样式。

通常,以这种方式的内联样式不会像静态HTML文档上的内联样式那样令人不悦。

DOM节点上的style属性本质上是这些DOM节点的style属性的访问器/ mutator。

出于本答案的目的,请考虑node.style.color = 'red'等效于node.setAttribute(node.getAttribute('style') + ' color: red') *。

有了这个问题可以重新定义为

style属性中规则的CSS特性是什么?

所以当然答案是

选择器的特异性计算如下:

...

注意: CSS 2.1中描述了HTML样式属性中指定的样式的特殊性。

哟dawg,我听说你喜欢这些规格

选择器的特异性计算如下:

  • 如果声明来自的是一个'style'属性而不是一个带选择器的规则,则为1;否则为 0(= a)(在HTML中,元素的“style”属性的值是样式表规则。这些规则没有选择器,所以a = 1,b = 0,c = 0,d = 0。)
  • 计算选择器中ID属性的数量(= b)
  • 计算选择器中其他属性和伪类的数量(= c)
  • 计算选择器中元素名称和伪元素的数量(= d)

强调我的

所以document.getElementById("demo").style.color = "red";的实际计算特异性document.getElementById("demo").style.color = "red"; 1,0,0,0


*这当然忽略了style现有规则。

  相关解决方案