今天工作上遇到了一件很不解的事情,就是之前有同事用css样式去编写了一个dom对象的样式且用到了!important这个属性值,而我们用的是同一个插件,为了不影响她的之前代码,我决定在条件上重置回来我自己所需的地方,尝试了很多遍,不管怎么修改,就是达不到我想要的效果,不管用原生JS,dom.style.backgroundColor = '#0f0 !important'
,还是用Jquery方法$(dom).css({'background-color', '#0f0'})
,都不管用。
所以上网查了下,网上的意思是说,important的属性值,用style加字符串的形式是不生效的,只能用setProperty这个方法修改或定义才有用,对这个方法,陌生的很,不知所以,就MDN看了下,才了解这个的用法。
CSSStyleDeclaration.setProperty() 方法接口,为一个声明了css样式的对象设置一个新的属性值。
语法:
el.style.setProperty(propertyName, value, priority);
参数:
- propertyName:是一个domString的属性名称,代表要更改的css属性。
- value:表示新的属性值。
- priority:可选,是一个可允许设置为"important"的css优先级,如果没有指定,则当成空的字符串。
返回值:
- undefined
示例:
var el = document.querySelector('#demo');
el.style.setProperty('background-color', '#f00', 'important');