2008-09-17 7 views
1

Existe-t-il un outil qui me permette de trouver toutes les classes CSS que je référence dans mon HTML et qui n'existent pas réellement?Trouver des références de style qui n'existent pas

ie. si j'ai < ul class = "topnav"/> dans mon code HTML et que la classe topnav n'existe dans aucun des fichiers CSS référencés.

Ceci est similaire à SO#33242, qui demande comment trouver les styles CSS inutilisés. Ce n'est pas un doublon, car cette question demande quelles classes CSS ne sont pas utilisées. C'est le problème inverse.

+1

Ceci est une copie de SO # 33242 http://stackoverflow.com/questions/33242/how-can-i-find-unused-images-and-css-styles-in-a-website –

+0

Réouvert. Désolé - je n'avais pas réalisé que vous demandiez l'inverse de cette autre question. –

+0

Ce sont deux questions valides, mais elles pourraient éventuellement être fusionnées si elles étaient libellées un peu différemment, car elles sont les deux aspects du même problème. Juste une pensée :) –

Répondre

4

Vous pouvez mettre cette JavaScript dans la page qui peut effectuer cette tâche pour vous:

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

excellent extrait de code! Je viens de saisir cela pour m'aider à trouver des classes CSS référencées qui n'existent pas. Bien sûr, le problème est que parfois l'attribut class est "surchargé" pour fournir un hook JavaScript ;-) mais maintenant je peux au moins voir lesquels n'ont aucun style appliqué. Impressionnant! – scunliffe

1

Console d'erreur dans Firefox. Bien, il donne toutes les erreurs CSS, donc vous devez le lire.

0

This Firefox extension est pas exactement ce que vous voulez.

Il localise tous les sélecteurs non utilisés.

+1

Ce n'est pas le problème que j'essaie de résoudre, je veux trouver tous les attributs de classe dans le HTML qui ne correspondent pas aux noms de classe dans le CSS. – Deeksy

+0

D'accord avec @Deeksy - Moi aussi j'ai attrapé des dustmeselectors une fois ... mais ça marquerait des trucs qui ont été définis, mais utilisés ailleurs sur mon site. Ainsi, vous devez agréger un tas de données à partir de plusieurs pages pour vous assurer que vous avez vraiment un sélecteur «mort». @ réponse de Mislav est sur. – scunliffe

Questions connexes