您将第一个 CSS 规则应用于元素并将其存储,然后获取计算值并进行比较。如果值不同,您可以将元素设置为原始值。
这是一个循环遍历css规则并获取您指定样式的值的函数。您必须修改它以包含类(它当前通过 ID 检查)并保存原始声明。
您还可以创建一个仅包含您想要包含的值的新规则,并将其应用于特定元素。
function getCSSPropertyValueForElement(id, property) {
var styleSheets = document.styleSheets;
var numOfStylesheets = styleSheets.length;
var values = [];
var selectorText = "#" + id;
var value;
for(var i=0;i<numOfStylesheets;i++) {
var styleSheet = styleSheets[i];
var cssRules = styleSheet.cssRules;
var numOfCSSRules = cssRules.length;
var cssRule;
for (var j=0;j<numOfCSSRules;j++) {
cssRule = cssRules[j];
if (cssRule.media) {
var mediaRules = cssRule.cssRules;
var numOfMediaRules = mediaRules ? mediaRules.length : 0;
for(var k=0;k<numOfMediaRules;k++) {
var mediaRule = mediaRules[k];
if (mediaRule.selectorText==selectorText) {
if (mediaRule.style && property in mediaRule.style) {
value = mediaRule.style.getPropertyValue(property);
console.log(property+":" + value);
values.push(value);
}
}
}
}
else {
if (cssRule.selectorText==selectorText) {
if (cssRule.style && property in cssRule.style) {
value = cssRule.style.getPropertyValue(property);
console.log(property+":" + value);
values.push(value);
}
}
}
}
}
return values.pop();
}
var property = "outline";
// getting the computed value / current value
var value = window.getComputedValue(element, "stylenamedoesntwork").style[property];