- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只想获取页面上元素的计算样式,没有所有继承的样式
var allElements = document.querySelectorAll( '*' );
for (var i=0;i<allElements.length;i++){
var element = allElements[i];
var css = getComputedStyle(element);
}
这显然得到了所有样式的巨大列表。
我只需要在“显示继承”复选框被禁用时显示在 Chrome 检查器中的“计算样式”。
这是什么 JS?
编辑:
我基本上是想保存我在 Chrome 检查器中修改的所有 css。我在页面上布置东西,我正在玩字体和元素放置(拖动 jquery draggables)。我想保存所有内容的位置和 CSS。也许我走得太复杂了,有一种简单的方法可以在 Chrome 检查器中保存所有修改后的样式?
最佳答案
尝试获取元素及其父元素的计算样式,然后删除相同的属性:
var elems = document.getElementsByTagName('*');
var data = '';
for(var n=0;n<elems.length;n++){
if(elems[n].parentNode.tagName){
data+=elems[n].tagName + ': ' + elems[n].className+'\n';
var style = [];
var prStyle = [];
var result = [];
var css = window.getComputedStyle(elems[n], null);
var prCss = window.getComputedStyle(elems[n].parentNode, null);
for(var i=0;i<css.length;i++){
if(css.getPropertyValue(css[i])){
style[i] = css[i]+':'+css.getPropertyValue(css[i]);
}
}
for(var i=0;i<prCss.length;i++){
if(prCss.getPropertyValue(prCss[i])){
prStyle[i] = prCss[i]+':'+prCss.getPropertyValue(prCss[i]);
}
}
for(var i=0;i<style.length;i++){
if(style[i]!=prStyle[i]){
result.push(style[i]);
}
}
for(var i=0;i<result.length;i++) data+=i+':'+result[i]+'\n';
}
data+='-----------------------\n';
}
return data;
关于javascript getComputedStyle,但不是继承的(在 chrome 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19648164/
获取元素的样式时,我们总是使用 if(document.defaultView && document.defaultView.getComputedStyle) 检查浏览器是否支持该方法。 为什么不
我目前拥有的代码获得了整个 CSS,甚至是默认的。我想要的是只更改默认的 CSS。 function baba() { addEventListener("mouseover", function
我需要为元素获取一个计算 CSS 位置,但是当使用auto 而不是数字值时,我在不同浏览器中得到的结果不一致。 例如在下面的demo中设置bottom: auto;Chrome 和 Firefox 报
我正在尝试报告我创建的椭圆形 div 的边框半径值,但我得到了一个未定义的返回值。谁能解释为什么?我是犯了一个简单的错误还是我的代码有问题?谢谢你! CSS3
我在这里设置了一个演示: http://jsbin.com/evifeb/ 这更像是我在大声思考,而不是一个适当的问题,但是.. 为什么浏览器将样式规则与辅助方法和保留字一起直接插入到计算样式对象中?
这个问题在这里已经有了答案: text-decoration: apparent discrepancy between appearance and computed values (3 个答案)
我想创建一个具有 display: none 的模拟 div 用于测试目的。但是,在测试中设置显示然后调用 getComputedStyle 显示样式没有变化,即 const parent = doc
我有一段简单的代码: var recipes = document.getElementsByClassName("recipes"); var recipesStyle = window.getCo
我正在尝试像这样获取 CSS left 属性的值... window.getComputedStyle(document.querySelector('.test'), ':after').getPr
我只是问我做错了什么,因为我以前已经做过,我只是不记得是怎么做的,我一定是把旧代码弄丢了。 Firefox 有一个未记录的颜色值,称为 -moz-win-accentcolor,可用于获取 Windo
本质上,我试图使用 getComputedStyle 来获取属性值,而无需(直接)访问元素。请阅读下面的说明以了解更多详细信息。 这很难解释,如果你不明白,请告诉我。 这是我的 CSS 代码: .yS
getComputedStyle获取text-decoration属性继承失败,但可以获取font-size。 在 Firefox 25 和 GoogleChrome 30 中失败。 Note: In
在考虑向 Chromium 提交错误时寻找解决方法 - 如果元素有过渡,getComputedStyle 不会返回您期望它返回的内容,直到过渡结束。 长和短 - 如果我有一个高度为 24px 的元素,
@media screen{ a {color:green} } @media print{ a {color:red} } 有没有一种方法可以使用 JavaScript 在打印
我处于这样一种情况,我需要等到图像被加载后,一旦图像被加载,我需要得到它的计算高度,以便我可以相应地设置黄色选择器。 问题:基于图像的计算高度,我正在设置黄色选择器。它随机与 setTimeout()
我有以下代码用于更新名为 --changeColor 的 css 变量 const r = document.querySelector(':root'); const currentColor =
我只是想知道为什么,例如,window.getComputedStyle(element).top 总是以像素为单位返回测量值,即使在设置了 top 位置的情况下也是如此像这样明确地 % elemen
getComputedStyle 的 MDN 文档州 The values returned by getComputedStyle are known as resolved values. The
我在定义 left、right 和 bottom 的元素上调用 getComputedStyle。 在 Chrome 中,它返回 'auto' 作为 top 的值,但在 Firefox 中,它返回像素
我目前遇到一个“奇怪的问题”...我是 JavaScript 的初学者,我想获取图像的高度以便设置 a 的大小。 我得到屏幕的宽度 我根据屏幕尺寸设置图像的宽度=> 我猜电脑也设置了图像的高度。 我问
我是一名优秀的程序员,十分优秀!