If you want to try it, go here
To set a CSS inline style as an !important one in javascript, you have to use the element.setAttribute() method.
But you can't use this one in old IE to set style. There is a specific syntax ;)
.test { | |
height: 139px; | |
width: 96px | |
} |
(function(){ | |
var elements = document.getElementsByTagName( 'div' ); | |
element = elements[ 0 ]; | |
// Specific old IE | |
if ( document.all ) { | |
element.style.setAttribute( 'cssText', 'background-image: url( "http://placekitten.com/200/300" ) !important' ); | |
// Modern browser | |
} else { | |
element.setAttribute( 'style', 'background-image: url( "http://placekitten.com/200/300" ) !important' ); | |
} | |
})(); |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
<title>How to set an !important css property in javascript</title> | |
<link href="important.css" media="screen" rel="stylesheet" type="text/css" /> | |
</head> | |
<body> | |
<div class="test">Miaaou</div> | |
<script type="text/javascript" src="important.js"></script> | |
<body> | |
</html> |
I used this to override "Ubermenu" styles... tried everything (even setting style.attribute to null first...) but this worked! I was also using getElement[s]By[Id,ClassName] because those 2 methods work on "live" elements: getElementById Element Object, getElementsByClassName returns a live HTMLCollection (Array like Object) as opposed to querySelector[All] which querySelectorAll returns a static (not live) NodeList, and querySelector an HTMLElement. This matters when attempting to access dynamically generated objects like dropdown lists for example. Thanks again.
How to set the !important css property using pure Javascript (element.dataset.color)
Any solution for the method like below???
el.style.backgroundColor = element.dataset.color
am trying this
el.style.backgroundColor = element.dataset.color + '!important'
Same trick works fine with + '%'
, Whats wrong with + '!important'
How to set the !important css property using pure Javascript
(element.dataset.color)
Any solution for the method like below???
el.style.backgroundColor = element.dataset.color
am trying this
el.style.backgroundColor = element.dataset.color + '!important'
Same trick works fine with
+ '%'
, Whats wrong with+ '!important'
The !important
tag can't be concatenated onto the end of the string the same way %
does, it's not a unit.
How to set the !important css property using pure Javascript
(element.dataset.color)
Any solution for the method like below???
el.style.backgroundColor = element.dataset.color
am trying this
el.style.backgroundColor = element.dataset.color + '!important'
Same trick works fine with+ '%'
, Whats wrong with+ '!important'
The
!important
tag can't be concatenated onto the end of the string the same way%
does, it's not a unit.
Its not that far fetched, since !important
is concatenated onto the end of the string in style sheets, even though it's not a unit.
for add more properties:
element.setAttribute("style", "transition-duration: 6s; transform: rotateY(180deg); border: 1px solid red");