溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何利用PostCSS跳進未來的CSS- JS-Republic's Blog

發(fā)布時間:2020-07-10 10:43:39 來源:億速云 閱讀:154 作者:Leah 欄目:web開發(fā)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)如何利用PostCSS跳進未來的CSS- JS-Republic's Blog,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

 在說明 PostCSS是什么之前,我們先理解PostCSS不是什么。

  實質(zhì)上,人們第一次聽說 PostCSS時,他們傾向于認為這是一款新出的CSS預(yù)處理器,類似SASS、LESS和Stylus。

  如果你想把它當(dāng)作預(yù)處理器來用,那么它會如預(yù)處理器那樣工作。同時它也有后處理器、優(yōu)化工具、兼容未來語法的插件......你想要的功能應(yīng)有盡有。

  PostCSS的主要目的是能讓你使用各種工具滿足你的需要。

  所以你應(yīng)該把 PostCSS當(dāng)作一個構(gòu)建工具。它能讓你用各類JavaScript插件來維護你的CSS。 這些插件可以在postcss.parts 這里找到

  由于有太多的插件,我們將通過這篇文章檢閱一下那些常用和強大的插件。

  同時你也會了解到如何搭配使用Gulp創(chuàng)建一個單任務(wù)來處理CSS文件。

  Autoprefixer

  如果你之前曾用過預(yù)處理器,你該體驗到不必再寫前綴是件多么愉悅的事。

  舉個例子,不必再這樣寫

:-webkit-full-screen a {
 display: -webkit-box;
 display: flex
}
:-moz-full-screen a {
 display: flex
}
:-ms-fullscreen a {
 display: -ms-flexbox;
 display: flex
}
:fullscreen a {
 display: -webkit-box;
 display: -ms-flexbox;
 display: flex
}

  只需

:fullscreen a {
 display: flex
}

  如果你想自己動手試試,可以用這個可互動demo http://autoprefixer.github.io

  文檔戳這里:github.com/postcss/autoprefixer

  PreCSS

  即使PostCSS本不是SASS那樣的預(yù)處理器,但你依然能通過一些插件來處理Sass類格式的文件。

  首選的插件是PreCSS,它集合了大量的PostCSS插件 ,讓你可以編寫Sass語法的樣式。

  我邀請你閱讀 文檔來了解更多細節(jié),也可以玩玩這個可互動 demo 來測試各種可能性。

  CssNext

  CSS4,下一代CSS,承諾將改變CSS的書寫方式和選擇器的使用方式。

  遺憾的是,這個版本的規(guī)范依然在制定中,并且尚未公布發(fā)行時間。

  幸運的是,如果你想使用下一代CSS的一些功能,這里有款叫CssNext的插件能幫助你。

  CSSNext的官網(wǎng)列出了所有支持的功能:cssnext.io/features/

  你也可以在這里玩玩:cssnext.io/playground/

  CssNano

  最后但同樣重要的,關(guān)于優(yōu)化。CssNano能利用不同的modules壓縮和優(yōu)化你的CSS代碼。

  我推薦你禁用the z-index,因為它很可能會擾搞亂你原本正常的z-index。

  你可以檢閱這份可優(yōu)化列表:cssnano.co/optimisations/ 你也可以在Gitter上和CssNano的創(chuàng)造者聊聊:gitter.im/ben-eb/cssnano

  現(xiàn)在,我們看看如何利用Gulp使用這些插件。

  Gulp x PostCSS

  Gulp

  首先,以dev dependencies 的方式安裝Gulp、Gulp Load Plugins 和Gulp PostCSS 。在控制臺執(zhí)行以下命令:

npm i -D gulp gulp-load-plugins gulp-postcss

  在你需要使用Gulp的地方創(chuàng)建一個 gulpfile.js 并加入如下代碼。

var gulp = require('gulp'),

  添加 Gulp Load PLugins的代碼:

$ = require('gulp-load-plugins')();

  Gulp Load Plugins依賴會 通過$調(diào)用你需要的插件。

  PostCSS

  接下來,同樣以dev dependency的方式需要安裝所需要的PostCSS插件

npm i -D autoprefixer cssnano cssnext precss

  安裝好后加入到gulpfile.js

// PostCSS Plugins
var autoprefixer = require('autoprefixer'),
cssnext = require('cssnext'),
precss = require('precss'),
cssnano = require('cssnano');

  接下來開始寫 Gulp CSS任務(wù)

// Gulp task to process CSS with PostCSS plugins 
gulp.task('css', function() {

 });

  在這個任務(wù)中,我們首先用一個變量來保存準備用到的PostCSS插件

var processors = [autoprefixer, cssnext, precss, cssnano({zindex: false})];

  設(shè)置CssNano的 zindex:false 禁止其重設(shè)我們的 z-index。

  為了處理CSS文件,我們需要檢索如下文件:

return gulp.src('./source/css/style.css')

  然后通過processors變量內(nèi)的PostCSS插件來處理CSS文件。

  使用pipe方法串聯(lián)起處理過程

.pipe($.postcss(processors))

  用如下代碼輸出處理完成的文件

.pipe(gulp.dest('./public/assets/stylesheets'));

  以上全部,就是你使用PostCSS 插件處理CSS時所要做的事。

var gulp = require('gulp'),
$ = require('gulp-load-plugins')();

// PostCSS Plugins
var autoprefixer = require('autoprefixer'),
cssnext = require('cssnext'),
precss = require('precss'),
cssnano = require('cssnano');

// Gulp task to process CSS with PostCSS plugins
gulp.task('css', function() {
var processors = [autoprefixer, cssnext, precss, cssnano({zindex: false})];

return gulp.src('./source/css/style.css')
.pipe($.postcss(processors))
.pipe(gulp.dest('./public/assets/stylesheets'));
});

上述就是小編為大家分享的如何利用PostCSS跳進未來的CSS- JS-Republic's Blog了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI