Skip to content

Instantly share code, notes, and snippets.

@ArunHub
Created March 26, 2019 14:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ArunHub/92404d693d17bcf2b9ad5409ae1474a9 to your computer and use it in GitHub Desktop.
Save ArunHub/92404d693d17bcf2b9ad5409ae1474a9 to your computer and use it in GitHub Desktop.
css extraction
function css(el) {
var sheets = document.styleSheets, ret = [];
el.matches = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector
|| el.msMatchesSelector || el.oMatchesSelector;
for (var i in sheets) {
var rules = sheets[i].rules || sheets[i].cssRules;
for (var r in rules) {
if (el.matches(rules[r].selectorText)) {
ret.push(rules[r].cssText);
}
}
}
return ret;
}
function getStyles(selector) {
var sheets = document.styleSheets;
for(let sheet of sheets) {
for (let rule of sheet.cssRules) {
if(rule.selectorText === selector){
return rule.style;
}
}
}
}
function getStyleListForElement(el) {
var appliedCssList = css(el);
return appliedCssList.map(
(cssText)=>{
let selector = cssText.substring(0,cssText.indexOf('{')).trim();
return getStyles(selector);
}
)
}
getStyleListForElement(el);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment