2008-09-17 17 views
1

私のHTMLに参照しているすべてのCSSクラスが実際には存在しないことがわかるツールはありますか?存在しないスタイル参照を見つける

ie。私のHTMLに< ul class = "topnav"/>があり、topnavクラスが参照されているCSSファイルに存在しない場合

これは、未使用のCSSスタイルを見つける方法を尋ねるSO#33242に似ています。これは重複ではありません。その質問はどのCSSクラスが使用されていないかを尋ねるためです。これは反対の問題です。

+1

これは、SO#33242 の複製です。http://stackoverflow.com/questions/33242/how-can-i-find-unused-images-and-css-styles-in-a-website –

+0

再オープンしました。申し訳ありません - 私はあなたがその他の質問の逆を求めていたことに気づいていませんでした。 –

+0

どちらも有効な質問ですが、同じ問題の両方の側面であるため、少し違った言い方をするとマージされる可能性があります。ちょうど考え:) –

答えて

4

あなたはあなたのためにこのタスクを実行することができますページにこのJavaScriptを置くことができます。

function forItems(a, f) { 
    for (var i = 0; i < a.length; i++) f(a.item(i)) 
} 

function classExists(className) { 
    var pattern = new RegExp('\\.' + className + '\\b'), found = false 

    try { 
    forItems(document.styleSheets, function(ss) { 
     // decompose only screen stylesheets 
     if (!ss.media.length || /\b(all|screen)\b/.test(ss.media.mediaText)) 
     forItems(ss.cssRules, function(r) { 
      // ignore rules other than style rules 
      if (r.type == CSSRule.STYLE_RULE && r.selectorText.match(pattern)) { 
      found = true 
      throw "found" 
      } 
     }) 
    }) 
    } catch(e) {} 


    return found 
} 
+0

すばらしいコードスニペット!私は、CSSクラスが存在しないことを参照するのを助けるためにこれを手に入れました。もちろん、クラスの属性がJavaScriptフックを提供するために「オーバーロード」されていることがありますが、今はどのスタイルにもスタイリングが適用されていないことがわかります。驚くばかり! – scunliffe

1

Firefoxのエラーコンソール。しかし、それはすべて CSSエラーを与えるので、あなたはそれを読む必要があります。

0

This Firefox extensionは正確に何をしたいんです。

未使用のセレクタをすべて探します。

+1

これは私が解決しようとしている問題ではなく、CSSのクラス名に対応していないHTMLのクラス属性をすべて見つけたいと思っています。 – Deeksy

+0

@Deeksyと同意する - 私も一度dustmeselectorsをつかんだ...しかし、それは定義されていたが、私のサイトの他の場所で使用されたものをフラグする。したがって、あなたは本当に "死んだ"セレクターを持っていることを確認するために、複数のページからデータの束を集める必要があります。 @ミスラフの答えは真剣です。 – scunliffe

関連する問題