是否存在一个现有的插件/ app / program / script /,它可以分析和计算文件的css选择器?我想检查我的css文件在IE中不起作用的原因是因为我的选择器数量超过4095(我很确定不是)
谢谢!
P.S。如果有haml / sass /指南针解决方案加点数
答案 0 :(得分:67)
可以在Firefox的Firebug控制台中运行以下代码段来计算CSS选择器的总数(不仅仅是CSS规则)并检查它是否达到每个样式表的limit of 4095 selectors:
var
styleSheets = document.styleSheets,
totalStyleSheets = styleSheets.length;
for (var j = 0; j < totalStyleSheets; j++){
var
styleSheet = styleSheets[j],
rules = styleSheet.cssRules,
totalRulesInStylesheet = rules.length,
totalSelectorsInStylesheet = 0;
for (var i = 0; i < totalRulesInStylesheet; i++) {
if (rules[i].selectorText){
totalSelectorsInStylesheet += rules[i].selectorText.split(',').length;
}
}
console.log("Stylesheet: "+styleSheet.href);
console.log("Total rules: "+totalRulesInStylesheet);
console.log("Total selectors: "+totalSelectorsInStylesheet);
}
答案 1 :(得分:4)
答案 2 :(得分:3)
有这个bookmarklet可以告诉你整个CSS规则(你感兴趣的)中使用的CSS规则的数量。
答案 3 :(得分:1)
这将执行内联CSS ...
var selectors = 0;
$('style').each(function() {
var styles = $(this).html();
// Strip comments
styles = styles.replace(/\/\*.+?\*\//sg, '');
var matches = styles.match(/\{[\s.]*\}/g);
selectors += matches.length;
});
答案 4 :(得分:1)
搜索和;在CSS文件中将“{”替换为“{”。大多数编辑都会告诉你你做了多少替换......
答案 5 :(得分:1)
如果您想在构建过程中执行此操作,或者根本不想在JS中执行此操作,则可以使用简单的算法来计算选择器:
用“,”替换“{”和“}”之间的文本,然后计算“,”的数量。这将为您提供文件中的选择器数量。
答案 6 :(得分:1)
a bit to late, but for anyone how's looking for a css selector counter: http://snippet.bevey.com/css/selectorCount.php it's very simple, and can work with more than one stylesheet, it even tells you when you hit the 4096 limit