只需20行代码就可以写出CSS覆盖率测试脚本_基础知识

  document.styleSheets里保存了当前页面上所有CSS规则的集合。通过它可以遍历出页面<style>里定义的所有selector,访问selectorText属性可得选择器的匹配规则。然后将规则规则传递给 document.querySelectorAll 即可获取页面内匹配此规则的元素列表。

  这里我们只求CSS规则的覆盖率,所以访问 querySelectorAll().length 即可。通过排序就可看出各个CSS使用情况。

  代码很简单。

复制代码 代码如下:

var usage = [];
var sheets = document.styleSheets;

for(var i = sheets.length - 1; i != -1; i--) {
    var rules = sheets[i].rules;

    for(var j = rules.length - 1; j != -1; j--) {
        var rule = rules[j];
        var text = rule.selectorText;

        usage.push({name: text, count: document.querySelectorAll(text).length});
    }
}
usage.sort(function(a, b){return a.count - b.count});

for(var i = usage.length - 1; i != -1; i--) {
    console.log("选择器:" + usage[i].name + "\n\t匹配数:" + usage[i].count);
}

 

  呼出F12,把代码粘到console里回车即可。

  当然由于权限问题,外部导入的CSS无论如何都访问不到,暂时先不考虑了。至于不支持styleSheets的破IE嘛,可以考虑用expression或者behaviour.htc,改天试试看。

  顺便贴个测试结果:

时间: 2025-01-04 23:20:19

只需20行代码就可以写出CSS覆盖率测试脚本_基础知识的相关文章

20行代码实现的一个CSS覆盖率测试脚本

document.styleSheets里保存了当前页面上所有CSS规则的集合.通过它可以遍历出页面<style>里定义的所有 selector,访问selectorText属性可得选择器的匹配规则.然后将规则规则传递给 document.querySelectorAll 即可获取页面内匹配此规则的元素列表. 这里我们只求CSS规则的覆盖率,所以访问 querySelectorAll().length 即可.通过排序就可看出各个CSS使用情况. 代码很简单. 复制代码 代码如下: var us

20行代码实现的一个CSS覆盖率测试脚本_javascript技巧

document.styleSheets里保存了当前页面上所有CSS规则的集合.通过它可以遍历出页面<style>里定义的所有selector,访问selectorText属性可得选择器的匹配规则.然后将规则规则传递给 document.querySelectorAll 即可获取页面内匹配此规则的元素列表.这里我们只求CSS规则的覆盖率,所以访问 querySelectorAll().length 即可.通过排序就可看出各个CSS使用情况.代码很简单. 复制代码 代码如下: var usage

只需 130 行代码,用 GAN 生成二维样本的小例子

50行GAN代码的问题 Dev Nag 写的 50 行代码的 GAN,大概是网上流传最广的,关于GAN最简单的小例子.这是一份用一维均匀样本作为特征空间(latent space)样本,经过生成网络变换后,生成高斯分布样本的代码.结构非常清晰,却有一个奇怪的问题,就是判别器(Discriminator)的输入不是2维样本,而是把整个mini-batch整体作为一个维度是batch size(代码中batch size等于cardinality)那么大的样本.也就是说判别网络要判别的不是一个一维的

php简简单单搞定中英文混排字符串截取,只需2行代码!

提到中英文混排计数.截取,大家首先想到的是ascii.16进制.正则匹配.循环计数.   今天我给大家分享的是php的mb扩展,教你如何轻松处理字符串.       先给大家介绍用到的函数:   mb_strwidth($str, $encoding) 返回字符串的宽度   $str 要计算的字符串   $encoding 要使用的编码,如 utf8.gbk   mb_strimwidth($str, $start, $width, $tail, $encoding) 按宽度截取字符串   $s

以Python代码实例展示kNN算法的实际运用_基础知识

邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表. kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别. kNN方法在类别决策时,只与极少量的相邻样本有关.由于kNN方法主

js中常用的弹出对话框3种方式_基础知识

对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认,返回 true 或者 false ,所以可以轻松用于 if else 判断 3:一个带输入的对话框,可以返回用户填入的字符串,常见于某些留言本或者论坛输入内容那里的插入UBB格式图片 下面我们分别演示: 演示一:提醒 对话框 演示二:确认对话框 演示三:要求用户输入,然后给个结果

22. WebAR那些事: 20行代码做全景

紧接上文 AR技术,全称增强现实技术,对已有的现实世界,增加一些虚拟元素,提升用户体验.传统的内容展示无非于:图片.文字.视频等组合,随着经济.技术的发展,越来越多的用户已经不满足于现状,目前需要的是消费升级.体验升级,那么AR.VR技术运用而生. 本次Demo所需二维码 本次demo已经集成到APK中,用户可以点击<全景>来体验. AR全景 环境准备 Demo使用r82版本,向下兼容 Three.js 到http://www.threejs.org下载最新源码,这里使用three.min.j

drawpath-只有20行代码!请大神帮忙看看,为什么drawPath( )会失效,但drawCircle( )却管用

问题描述 只有20行代码!请大神帮忙看看,为什么drawPath( )会失效,但drawCircle( )却管用 public class Hehe extends View { Path p; Paint p1; public Hehe(Context context AttributeSet attrs) { super(context attrs); // TODO Auto-generated constructor stub p=new Path();//定义一个路径 p.moveTo

最近在看郭霖的第一行代码,写酷欧天气时,发现书上给的中国天气网提供的省市县api失效

问题描述 最近在看郭霖的第一行代码,写酷欧天气时,发现书上给的中国天气网提供的省市县api失效 最近在看郭霖的第一行代码,写酷欧天气时,发现书上给的中国天气网提供的省市县api失效请问新的省市县的api地址多少啊?或者有更好的API借口,求大神提供,感激不尽! 解决方案 天气api 解决方案二: 现在中国天气网有api,现在是免费的.或者用爬虫抓取天气也可以. 解决方案三: 推荐你用showapi