Tool zum Entfernen von nicht verwendetem CSS

Für einige Webentwicklungsprojekte fange ich an, einige externe Frontend-Frameworks zu verwenden. Ich bin kein guter Designer, also sind sie sehr nützlich, aber ich nutze nie die Hälfte ihrer Fähigkeiten aus.

Um etwas Platz in meinen CSS - Dateien zu sparen, suche ich nach einem Tool, das meine DOM-Architektur und meine CSS -Datei verstehen und dann alle nutzlosen Deklarationen entfernen kann.

  • Es ist mir egal, ob es sich um eine Web-App, ein IDE- oder Browser-Plugin oder eine Linux/Windows-Desktop-Anwendung handelt.
  • Eingabe: .html- Dateien (aber wenn Sie andere Vorschläge haben, bin ich interessiert)
kann eine wirklich nette neue Option haben ... es ist ein Nodes.js/Grunt-Plugin CSSRazor - nur als Kommentar hinzufügen, weil ich es gerade gefunden und noch nicht verwendet habe, aber es könnte großartig sein. Wenn es mir in ein paar Testtagen gefällt, werde ich darüber schreiben.
und fand ein besseres als CSSRazor. Kurz mit uncss antworten

Antworten (6)

Ich muss sagen, dass ich diese Option für besser halte als meine ursprüngliche Empfehlung; Meine ursprüngliche Empfehlung war großartig, um schnell nachzuschauen, dies ist besser zum Erstellen von Release-Paketen.

UnCSS und insbesondere das, worauf ich die Empfehlung stütze, ist The Grunt Wrapper for UnCSS ; das lässt sich natürlich für eine großartige Automatisierung in das Grunt -Build-System integrieren.

Es gibt einige Anpassungsoptionen ( auch im Detail aufgeführt ) und es unterstützt sowohl lokale als auch Remote-CSS-Dateien als Quellen.

Wenn Sie in Grunt verwenden, schlage ich vor, es zusammen mit grunt-processhtml zu verwenden, damit Ihre Seite(n) automatisch auf die neue(n) verkettete(n) und bereinigte(n) CSS-Datei(en) verweisen.

Wie ich es benutze: (ein Ausschnitt meiner gruntfile.js)

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uncss: {
        main: {
            options: {
                report: 'gzip'
            },
            files: {
                '<%= grunt.option("outpath") %>/css/cleaned.css' : '<%= src_files_html %>',
            }
        }
    },
    processhtml: {
        main : {
            options: {
                strip: false
            },
            files: [{
                expand: true,
                cwd: '',
                src: '<%= src_files_html %>',
                dest: '<%= grunt.option("outpath") %>'
            }]
        }
    }

und dann habe ich in meiner HTML-Datei Folgendes:

    <!-- build:css ./css/cleaned.min.css -->
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.min.css">
    <link href="./css/style.css" rel="stylesheet">
    <!-- /build -->

was umgewandelt wird in:

<link rel="stylesheet" href="./css/cleaned.min.css">

und das CSS ist viel kleiner und besser für Leistung und mobile Bandbreite.

Ich habe eine großartige Option - zumindest liebe ich sie total - obwohl es weder eine Web-App noch eine Linux-Anwendung ist.

Ich empfehle das Firefox-Addon CSS Usage – es erfordert Firefox und das Firefox-Addon Firebug .

Geben Sie hier die Bildbeschreibung ein

Verwendungszweck:

  • Laden Sie einfach die Seite (über Web, localhost (wie in meinem Bild) oder sogar nur das Dateisystem,
  • Öffnen Sie die Firebug-Konsole und klicken Sie auf die Registerkarte CSS-Verwendung
  • KlickenSCAN
  • überprüfen und wenn Sie gesäubertes CSS exportieren möchten (nur aus dem Dateisystem funktioniert zuverlässig - obwohl dies eine kleine Korrektur für das Plugin sein sollte - was ich vielleicht irgendwann tun werde).

Leider hat das exportierte gesäuberte CSS einige Ärgernisse; Einige Regeln werden gelöscht (gut), aber einigen ist ein Präfix vorangestellt UNUSED..

Als Problemumgehung habe ich immer nur kopiert und in Notepad ++ eingefügt und das Suchen und Ersetzen mit dieser Regex als Suchzeichenfolge verwendet: UNUSED\..*?\}(und wählen Sie . matches newlines) und ein leeres Ersetzen, um sie einfach loszuwerden. - um dasselbe in Sublime zu tun, das Sie (?s)UNUSED\..*?\}als Regex verwenden würden. Die meisten anderen guten Texteditoren sollten ähnliche Funktionen haben.

Das bereinigte CSS, das ich exportieren kann, ist nicht sauber: Es fügt nur UNUSED vor jeder nicht verwendeten Anweisung hinzu. Gibt es eine Konfiguration zu tun, damit es funktioniert?
Trotzdem muss er alle Seiten seiner Website öffnen, damit das Tool alles aufzeichnen kann. Und vielleicht werden einige der HTML-Elemente zu diesem Zeitpunkt nicht angezeigt _(Benutzer nicht angemeldet, daher keine Registerkarte "Profil bearbeiten", daher kein CSS-Element #edit_profile verwendet) und durchlaufen alle Bedingungen.
@Joraid: Ja, das stimmt - obwohl Sie bei den meisten Websites nur eine Seite jeder Art öffnen müssten, um alle Klassen / IDs zu erhalten, aber das ist immer noch geöffnet und scannen Sie jede Seite / jeden AJAX-Inhalt. Sie können die autoscanFunktion verwenden, um viel weniger manuelle Arbeit zu leisten.

Ich habe dieses browserbasierte Online - Tool zum Entfernen von unbenutztem CSS erstellt .

Merkmale:

  1. Browserbasiert. Nichts zu installieren.
  2. Prüft CSS gegen mehrere URLs.
  3. Bietet Optionen zum manuellen Auswählen/Abwählen von Elementen in der CSS-Datei.
  4. Kann für unbegrenzte URLs heruntergeladen und auf Ihrem lokalen Host ausgeführt werden
  5. Open-Source-Code

Haftungsausschluss: Ich bin der Autor des Codes.

IntelliJ IDEA verfügt über einige leistungsstarke Webentwicklungsfunktionen :

Sie benötigen jedoch die Ultimate Edition, um Zugriff auf die Webentwicklungsfunktionen zu haben (kostenlos, wenn Sie der Projektleiter oder ein regelmäßiger Committer in einem Open-Source-Projekt sind).

Das OP hat nach einem Tool gefragt, das unbenutztes CSS ENTFERNT. Es gibt viele kostenlose Optionen, um unbenutztes CSS zu finden. Chrome-Entwicklertools hat eine.

Dafür haben wir ein kostenloses Online-Tool geschrieben: UnusedCSS

Es durchsucht rekursiv Ihre Website (folgt internen Links) und findet ungenutzte Selektoren (viele andere Tools verarbeiten nur eine Seite).

Ich habe das Firebug-Plugin CSS Usage bereits bei einigen Projekten verwendet – der einzige Nachteil ist, dass Sie Ihre gesamte Website manuell durchsuchen müssen, um eine genaue Karte der verwendeten Stile zu erhalten.

Sie erhalten jedoch vereinfachte Versionen Ihrer CSS-Dateien, mit denen Sie Ihre aktuellen Stylesheets ersetzen können.

Willkommen beim Stapelaustausch für Softwareempfehlungen! Dieser Beitrag enthält nicht genügend Informationen, um als qualitativ hochwertige Antwort angesehen zu werden. Bitte lesen Sie unsere Diskussion darüber, was eine Antwort von hoher Qualität macht , um zu sehen, ob Sie einige dieser Verbesserungen in Ihre Antwort integrieren können, andernfalls wird sie entfernt.