.test { width:80px; height:50px; background-color:#808080; margin:20px; }
HTML -
<div class="test">Click Here</div>
In JavaScript i want to get margin:20px
In this article, we will see how to dynamically create a CSS class and apply to the element dynamically using JavaScript. To do that, first we create a class and assign it to HTML elements on which we want to apply CSS property. We can use className and classList property in JavaScript.
You can get the computed value of an element's CSS property by simply passing the property name as a parameter to the css() method. Here's the basic syntax: $(selector). css("propertyName");
With JavaScript, we are able to set CSS styles for one or multiple elements in the DOM, modify them, remove them or even change the whole stylesheet for all your page.
For modern browsers you can use getComputedStyle
:
var elem, style; elem = document.querySelector('.test'); style = getComputedStyle(elem); style.marginTop; //`20px` style.marginRight; //`20px` style.marginBottom; //`20px` style.marginLeft; //`20px`
margin
is a composite style, and not reliable cross-browser. Each of -top
-right
, -bottom
, and -left
should be accessed individually.
fiddle
The accepted answer is the best way to get the computed values. I personally needed the pre-computed value. Say for instance 'height' being set to a 'calc()' value. I wrote the following jQuery function to access the value from the style sheet. This script handles nested 'media' and 'supports' queries, CORS errors, and should provide the final cascaded precomputed value for accessible properties.
$.fn.cssStyle = function() { var sheets = document.styleSheets, ret = []; var el = this.get(0); var q = function(rules){ for (var r in rules) { var rule = rules[r]; if(rule instanceof CSSMediaRule && window.matchMedia(rule.conditionText).matches){ ret.concat(q(rule.rules || rule.cssRules)); } else if(rule instanceof CSSSupportsRule){ try{ if(CSS.supports(rule.conditionText)){ ret.concat(q(rule.rules || rule.cssRules)); } } catch (e) { console.error(e); } } else if(rule instanceof CSSStyleRule){ try{ if(el.matches(rule.selectorText)){ ret.push(rule.style); } } catch(e){ console.error(e); } } } }; for (var i in sheets) { try{ q(sheets[i].rules || sheets[i].cssRules); } catch(e){ console.error(e); } } return ret.pop(); }; // Your element console.log($('body').cssStyle().height);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With