如何利用PostCSS跳進(jìn)未來的CSS-JS-Republic'sBlog

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

創(chuàng)新互聯(lián)建站是一家專業(yè)提供金城江企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為金城江眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

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

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

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

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

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

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

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

  Autoprefixer

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

舉個例子,不必再這樣寫

:-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語法的樣式。

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

  CssNext

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

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

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

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

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

  CssNano

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

我推薦你禁用the z-index,因?yàn)樗芸赡軙_搞亂你原本正常的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ù)中,我們首先用一個變量來保存準(zhǔn)備用到的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跳進(jìn)未來的CSS- JS-Republic's Blog了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁題目:如何利用PostCSS跳進(jìn)未來的CSS-JS-Republic'sBlog
文章位置:http://bm7419.com/article38/jdsdpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站建設(shè)建站公司、做網(wǎng)站、面包屑導(dǎo)航網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)