Heim >Web-Frontend >js-Tutorial >So bauen Sie Ihr eigenes CSS -Präprozessor mit PostCSS auf
Schlüsselpunkte
Viele Entwickler haben derzeit weniger, Stylus oder die beliebtesten Sass -Sasss übernommen. Im Idealfall sollten Sie auch Ihr CSS mit dem Autoprefixer nacharbeiten, um Anbieter-Präfixe bei Bedarf hinzuzufügen, ohne Frameworks wie Mixin oder Kompass zu verwenden. Autoprefixer ist ein Plugin für Postcs. Es gibt viele andere verfügbare Plugins, die präprozessorähnliche Funktionen wie Variablen, Mixins und Nisting implementieren. Ben Frains jüngster Artikel "Aufbrechen mit Sass: Nicht du, ich bin es", bringt einen interessanten Vorschlag vor. Angesichts der Tatsache, dass Sie POSTCS zum Erstellen des CSS -Präprozessors verwenden können, den Sie möchten, benötigen Sie wirklich Sass, weniger oder Stift? Ein grundlegender sassähnlicher Parser kann während Ihres Erstellungsvorgangs erstellt werden. In diesem Beispiel werde ich eine Gulp.js -Taskdatei verwenden, aber dasselbe Konzept gilt für Grunzen oder ein anderes Build -System. Zunächst verwenden wir NPM, um PostCS und die erforderlichen Plugins zu installieren, zum Beispiel:
<code class="language-bash">npm install gulp-postcss postcss-mixins postcss-simple-vars postcss-nested autoprefixer-core --save-dev</code>
Erstellen Sie dann ein Array von CSS -Verarbeitungsfunktionen in gulpfile.js, zum Beispiel:
<code class="language-javascript">var gulp = require('gulp'), postcss = require('gulp-postcss'), processors = [ require('postcss-mixins'), require('postcss-simple-vars'), require('postcss-nested'), require('autoprefixer-core')({ browsers: ['last 2 versions', '> 2%'] }) ];</code>
und schreiben Sie eine CSS -Verarbeitungsaufgabe, zum Beispiel:
<code class="language-javascript">// 编译CSS gulp.task('css', function() { return gulp.src('source/css/styles.css') .pipe(postcss(processors)) .pipe(gulp.dest('dest/styles/')); });</code>
Sie können auch die POSTCSS -API verwenden, um Ihre eigenen Verarbeitungsfunktionen zu erstellen. Zum Beispiel können wir einen seriF-Fallback für alle Schriftfamilienerklärungen anwenden:
<code class="language-javascript">processors = [ require('postcss-mixins'), require('postcss-simple-vars'), require('postcss-nested'), function(css) { // sans-serif 后备 css.eachDecl('font-family', function(decl) { decl.value = decl.value + ', sans-serif'; }); }, require('autoprefixer-core')({ browsers: ['last 2 versions', '> 2%'] }) ];</code>
Wenn die Datei /source/css/styles.css den folgenden Code enthält:
<code class="language-css">$colorfore: #333; $colorback: #fff; @define-mixin reset { padding: 0; margin: 0; } main { font-family: Arial; @mixin reset; color: $colorfore; background-color: $colorback; article { color: $colorback; background-color: $colorfore; } }</code>
Gulp -CSS erstellen dieses CSS in /dest/css/styles.css:
<code class="language-css">main { font-family: Arial, sans-serif; padding: 0; margin: 0; color: #333; background-color: #fff; } main article { color: #fff; background-color: #333; }</code>
Vorteile
postCSS ermöglicht es Ihnen, die Einschränkungen und Auswahlmöglichkeiten zu entfernen, die von Präprozessoren -Autoren auferlegt werden. Diese Methode bietet mehrere Vorteile:
Nachteile
Also ist alles in Ordnung? Leider ist PostCSS nicht die perfekte Lösung:
Sollten Sie Ihren Präprozessor aufgeben?
Wenn Sie ein kleines, relativ einfaches eigenständiges Projekt in einem einzigen Team starten, kann ein benutzerdefinierter Postcss -Prozessor eine attraktive Option sein. Ich empfehle auch PostCSS für alle realen Nachbearbeitungsaufgaben wie Anbieter -Präfix, Verpackung von Medienabfragen zu einer einzigen Deklaration, Reduzierung von Calc () -Abgleisen, Unterstützung für alte Browser -Anwendungen, Unterstützung von CSS4 -Selektoren, Schrumpfung usw. Es gibt keinen Vorteil, diese Aufgaben selbst zu erledigen. Sass hat jedoch eine kritische Masse erreicht. Keine Präprozessorsyntax ist perfekt, wird jedoch von den meisten Entwicklern in Ihrem Team verstanden. Es ist unwahrscheinlich, dass ein subtiler Unterschied erhebliche Vorteile bietet oder allen anspricht. Das heißt, Postcss und ähnliche Nacharbeit haben ein großes Potenzial. Wenn ein modulares CSS -Plug -In -System - oder sogar mischen kann -die Syntax und Funktionalität von SASS, weniger und Stift, die wir wollen, haben wir einen Präprozessor, der alle anderen Vorprozessoren -Utensilien schlagen kann. Sie können wetten, dass jemand dieses Projekt jetzt entwickelt ...
Haben Sie POSTCS erfolgreich als Präprozessor für Ihr Projekt verwendet? Zieht es dich von Sass weg? Wirst du von weniger migrieren? Wirst du Stift aufgeben?faqs über postcss
Was ist der Hauptunterschied zwischen Postcss und anderen CSS -Präprozessoren?
Wie installiere und verwende ich Postcss?
installieren. Um POSTCSS zu verwenden, müssen Sie das von Ihnen gewünschte Plugin installieren und dann eine Konfigurationsdatei erstellen, die das von Ihnen gewünschte Plugin angibt. Anschließend können Sie POSTCS auf Ihrer CSS -Datei mit dem Befehl npm install -g postcss-cli
ausführen. postcss input.css -o output.css
Kann ich Postcss mit anderen CSS -Präprozessoren verwenden?
postcss bietet viele Vorteile. Es ist sehr anpassbar, sodass Sie nur die gewünschten Plugins auswählen können. Dies kann zu einem kleineren, schnelleren Build -Prozess führen. Mit PostCSS können Sie heute zukünftige CSS -Funktionen verwenden. Sie fügt Ihrem CSS automatisch Anbieter -Präfixe hinzu, um Ihnen Zeit zu sparen und sicherzustellen, dass Ihr Stil in verschiedenen Browsern ordnungsgemäß funktioniert.
Während Postcss leistungsstark und flexibel ist, kann seine Lernkurve steiler sein als andere CSS -Präprozessoren. Da es auf Plugins beruht, müssen Sie Zeit damit verbringen, das richtige Plugin für Ihr Projekt zu recherchieren und auszuwählen. Da es sich um ein neueres Werkzeug handelt, ist es möglicherweise nicht so weitgehend unterstützt oder angenommen wie andere Präprozessoren.
postcss verarbeitet Mixin durch das Postcss-Mixins-Plugin. Mit diesem Plugin können Sie Mixins in CSS definieren und verwenden, ähnlich wie Sie es in SASS oder weniger tun. Sie können ein Mixin in der POSTCSS -Konfigurationsdatei definieren und in Ihrem CSS mithilfe des Schlüsselworts @mixin
verwenden.
Ja, Sie können Postcs in Ihre vorhandenen Projekte integrieren. Sie müssen nur PostCS und das von Ihnen gewünschte Plugin installieren und dann eine PostCSS -Konfigurationsdatei einrichten. Sie können dann Postcs in der vorhandenen CSS -Datei ausführen.
Autoprefixer und CSSNext sind tatsächlich Postcss -Plugins. Dies bedeutet, dass es sich um Werkzeuge handelt, die auf Postcs ausgeführt werden und die Plug-in-Architektur nutzen. AutoPrefixer fügt Ihrem CSS das Präfix des Anbieters hinzu, während Sie mit CSSNext heute zukünftige CSS -Funktionen verwenden können.
Ja, Postcss eignet sich für Projekte jeder Größe. Da es anpassbar ist, können Sie nur die gewünschten Plugins auswählen und einen kleineren, schnelleren Build -Prozess aktivieren. Dies macht es zu einer guten Wahl für große Projekte, bei denen Leistung ein Problem darstellt.
Das obige ist der detaillierte Inhalt vonSo bauen Sie Ihr eigenes CSS -Präprozessor mit PostCSS auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!