问题描述
当Javascript修改CSS时,CSS特性是什么?
如:
document.getElementById("demo").style.color = "red";
它被认为是内联样式吗?
1楼
Javascript修改CSS时的CSS特异性?
与通过编辑原始源代码而不是使用JS来修改CSS完全相同。
document.getElementById("demo").style.color = "red";
在这种情况下,您将修改直接附加到元素的样式。
<div id="demo" style="color: red">
所以最大的特异性 ( )
如果您使用JS来 ,那么特异性将会有所不同。
2楼
通过JavaScript,您正在修改DOM树(Html文件)而不是CSS文件,因此它是内联样式。
通常,以这种方式的内联样式不会像静态HTML文档上的内联样式那样令人不悦。
3楼
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现有规则。