資料介紹
PostCSS現(xiàn)在已經(jīng)普及了一段時間,如果您還沒有使用過它或不知道PostCSS是什么,那么我建議您看看這篇PostCSS簡介,該文章介紹了PostCSS的基礎知識,包括如何安裝和使用一些PostCSS插件。
在本教程中,我將向您展示如何結(jié)合Gulp使用PostCSS,一個流行的自動化工具。由于這篇文章不是一個關于Gulp的入門教程,所以我不會涵蓋Gulp的基礎知識。但為了快速入門,您可以看看這篇Gulp.js簡介。
1.項目設置
在開始本教程之前,你應該創(chuàng)建一個項目文件夾用來工作。該文件夾內(nèi)應該已經(jīng)安裝了Gulp以及兩個內(nèi)部文件夾,名稱分別為“initial”和“final”(或您選擇的其它名稱)。所謂的“initial”的文件夾將存放你的原材料和未加工的CSS代碼。 “initial”文件夾將存放處理過的文件,隨時可以使用。
在繼續(xù)之前,在您的項目文件夾中打開使用終端,運行以下命令:
npm install gulp-postcss --save-dev
PS:–save-dev補充:表示將正在安裝的插件作為依賴添加到project.json文件里。這將對多人合作模式有很大的幫助。當其他開發(fā)人員運行npm install在軟件包安裝命令,所有的插件將被自動安裝。
此時你的文件夾結(jié)構(gòu)應該是:
initial —您的原始CSS文件的文件夾。
style.css —未處理的css樣式,我們將在稍后進行編輯。
final — 處理過的css文件的文件夾node_modules — 所有NPM模塊的文件夾
gulp — 當你安裝Gulp時創(chuàng)建的文件夾gulp-postcss —運行上面的命令后創(chuàng)建的文件夾。
guplfile.js —你的 Gulp文件package.json —你的 package.json 文件
2.安裝插件
開始之前,我們先安裝一些基本的插件。我們將要使用的插件是 short-color(一個顏色插件)。這個插件基本上擴展了現(xiàn)有的顏色屬性,并且可以設置第二個顏色值(將會被作為背景顏色)。運行以下命令來安裝 short-color。
npm install postcss-short-color --save-dev
你還可以同時安裝使用gulp-postcss和postcss-short-color :
npm install gulp-postcss postcss-short-color --save-dev
這兩個插件安裝完畢后,你需要打開并編輯gulpfile.js文件,這樣就可以開始使用該插件工作。我們首先通過以下代碼來啟用這兩個插件:
vargulp = require(‘gulp’); varpostcss = require(‘gulp-postcss’); varshortColor = require(‘postcss-short-color’);
現(xiàn)在,讓我們建立一個gulp任務來處理我們的原始的CSS文件,并創(chuàng)建一個準備就緒的樣式表。下面是代碼這樣做:
gulp.task(‘css’, function(){returngulp.src(‘initial/*.css’) .pipe(postcss([shortColor])) .pipe(gulp.dest(‘final’)); });
我首先創(chuàng)建一個名為CSS的任務。當你要運行相應的功能時可以用到這個名字。您可以在gulp.src()內(nèi)部指定要處理的文件。使用*的CSS將處理“intial”文件夾內(nèi)所有的CSS文件。
接下來,我們使用pipe()函數(shù)來調(diào)用我們的所有插件。要做到這一點,我們需要將所有的插件作為參數(shù)傳遞給postcss()函數(shù)。在我們的基本的例子中,我們實際上只有一個插件需要傳遞。 在下一節(jié),我會告訴你如何傳遞多個插件。插件通過管道后,gulp.dest()將被用于設置處理的文件的目的地。
為了測試,如果一切已正確設置,在“initial”文件夾內(nèi)創(chuàng)建一個style.css文件。 style.css文件將有以下的CSS:
section{ color:white black; }
接下來,你需要在你的終端里運行gulp css命令。此刻,在您的“final”文件夾內(nèi),你應該會看到一個style.css文件,像下面的CSS 一樣:
section{ color:white; background-color:black; }
如果您CSS的樣式和上面所展示的CSS樣式一樣的話,我們就可以認為一切工作正常。
3.安裝多個插件
只使用一個基本的插件并不能從根本上減輕你的工作量。PostCSS有很多令人印象深刻的且令人難以置信的有用的插件,所以在大多數(shù)情況下,你需要使用到的插件不止一個。在本節(jié)中,我將告訴你如何在工作中同時使用多個插件。
您可能會發(fā)現(xiàn)有三個PostCSS插件(包)是非常有用的:即 short, cssnext和 autoprefixer
short將使你少寫并且速記大量的CSS屬性。 例如:
.heading{ font-size:1.25em 2; }
將會被解析成:
.heading{ font-size:1.25em; line-height:2; }
cssnext能夠在你的css樣式表中,使用最新的CSS語法。例如,下面的CSS:
.link{ color:color(green alpha(-10%)); }
將被轉(zhuǎn)換為:
.link{ background:rgba(0, 255, 0, 0.9); }
最后,autoprefixer將會在您的CSS和轉(zhuǎn)換后的樣式文件中添加供應商前綴:
img{ filter:grayscale(0.9); }
轉(zhuǎn)換為:
img{ -webkit-filter:grayscale(0.9); filter:grayscale(0.9); }
現(xiàn)在讓我們看看如何安裝這些插件,然后用它們來改造我們的樣式表。在項目目錄下運行下面的命令:
npm install autoprefixer postcss-short postcss-cssnext --save-dev
我們需要修改我們的gulp task來包含所有這些插件,代替用管道將所有這些插件一個一個的傳遞,我們將它們存儲在易于維護和簡潔的陣列。下面是我們的gulpfile.js的代碼:
vargulp = require(‘gulp’); varpostcss = require(‘gulp-postcss’); varautoprefixer = require(‘a(chǎn)utoprefixer’); varcssnext = require(‘postcss-cssnext’); varshortcss = require(‘postcss-short’); gulp.task(‘css’, function(){varplugins = [ shortcss, cssnext, autoprefixer({browsers: [‘》 1%’], cascade: false}) ]; returngulp.src(‘initial/*.css’) .pipe(postcss(plugins)) .pipe(gulp.dest(‘final’)); });
您可能已經(jīng)注意到了,我已經(jīng)指定了Autoprefixer插件的一些選項。Autoprefixer輸出這些選項確定的CSS,在這種情況下,我說的是插件支持所有全球使用量超過1%的瀏覽器。我也被禁用級聯(lián),讓所有的前綴和不帶前綴屬性左對齊。類似的選項也可用于大多數(shù)其他插件。
為了測試,如果一切正常,將出在樣式表下面的CSS:
.prefix-filter{ display:flex; }.cssshort-section{ text:#333bold justify uppercase 1.25em 1.7.05em; }.cssnext-link{ color:color(blue alpha(-10%)); }.cssnext-link:hover{ color:color(orange blackness(80%)); }
如果現(xiàn)在在終端中運行gulp css,你應該在“final”文件夾中可以得到style.css,如下:
.prefix-filter{ display:-webkit-box; display:flex; }.cssshort-section{ color:#333; font-weight:700; text-align:justify; text-transform:uppercase; font-size:1.25em; line-height:1.7; letter-spacing:.05em; }.cssnext-link{ color:#0000ff; color:rgba(0, 0, 255, 0.9); }.cssnext-link:hover{ color:rgb(51, 33, 0); }
4。插件的執(zhí)行順序
在最后一節(jié)的例子很清楚說明了PostCSS的實用性。所有PostCSS的力量在于它的插件。
我們具體來研究兩個插件 rgba-fallback 和 color-function, rgba-fallback插件會轉(zhuǎn)換一個RGBA顏色為16進制格式,color-function將改變CSS的color()函數(shù)來兼容更多菜單CSS,比方說,你有一下的CSS:
body{ background:color(orange a(90%)); }
如果你運行的顏色功能插件之前的RGBA-后備插件,就像這樣:
var plugins =[ rgbafallback, colorfunction ];
你將得到下面的CSS:
body{ background:rgba(255, 165, 0, 0.9); }
正如你所看到的,在處理CSS時沒有RGBA回退。這樣的異常原因是回退插件運行時,它發(fā)現(xiàn)背景是color(orange a(90%)),并且不知道該怎么辦。后來,color函數(shù)插件執(zhí)行,并從原來的color函數(shù)創(chuàng)建RGBA顏色值。
如果你扭轉(zhuǎn)插件順序,按以下順序運行它們:
var plugins =[ colorfunction, rgbafallback ];
最后的CSS是這樣的:
body{ background:#ffa500; background:rgba(255, 165, 0, 0.9)}
這一次的顏色插件首先把背景色的RGBA值和后備插件層增加一個十六進制回退。
總結(jié)
在本教程中我已經(jīng)介紹了使用gulp和PostCSS一起使用的基本知識。隨著插件和gulp的正確組合,可以節(jié)省開發(fā)的許多時間和避免不必要的麻煩。如果您有任何技術問題或建議,請盡管在本教程的下面進行評論,以便于我們能更好的學習交流。
?
在本教程中,我將向您展示如何結(jié)合Gulp使用PostCSS,一個流行的自動化工具。由于這篇文章不是一個關于Gulp的入門教程,所以我不會涵蓋Gulp的基礎知識。但為了快速入門,您可以看看這篇Gulp.js簡介。
1.項目設置
在開始本教程之前,你應該創(chuàng)建一個項目文件夾用來工作。該文件夾內(nèi)應該已經(jīng)安裝了Gulp以及兩個內(nèi)部文件夾,名稱分別為“initial”和“final”(或您選擇的其它名稱)。所謂的“initial”的文件夾將存放你的原材料和未加工的CSS代碼。 “initial”文件夾將存放處理過的文件,隨時可以使用。
在繼續(xù)之前,在您的項目文件夾中打開使用終端,運行以下命令:
npm install gulp-postcss --save-dev
PS:–save-dev補充:表示將正在安裝的插件作為依賴添加到project.json文件里。這將對多人合作模式有很大的幫助。當其他開發(fā)人員運行npm install在軟件包安裝命令,所有的插件將被自動安裝。
此時你的文件夾結(jié)構(gòu)應該是:
initial —您的原始CSS文件的文件夾。
style.css —未處理的css樣式,我們將在稍后進行編輯。
final — 處理過的css文件的文件夾node_modules — 所有NPM模塊的文件夾
gulp — 當你安裝Gulp時創(chuàng)建的文件夾gulp-postcss —運行上面的命令后創(chuàng)建的文件夾。
guplfile.js —你的 Gulp文件package.json —你的 package.json 文件
2.安裝插件
開始之前,我們先安裝一些基本的插件。我們將要使用的插件是 short-color(一個顏色插件)。這個插件基本上擴展了現(xiàn)有的顏色屬性,并且可以設置第二個顏色值(將會被作為背景顏色)。運行以下命令來安裝 short-color。
npm install postcss-short-color --save-dev
你還可以同時安裝使用gulp-postcss和postcss-short-color :
npm install gulp-postcss postcss-short-color --save-dev
這兩個插件安裝完畢后,你需要打開并編輯gulpfile.js文件,這樣就可以開始使用該插件工作。我們首先通過以下代碼來啟用這兩個插件:
vargulp = require(‘gulp’); varpostcss = require(‘gulp-postcss’); varshortColor = require(‘postcss-short-color’);
現(xiàn)在,讓我們建立一個gulp任務來處理我們的原始的CSS文件,并創(chuàng)建一個準備就緒的樣式表。下面是代碼這樣做:
gulp.task(‘css’, function(){returngulp.src(‘initial/*.css’) .pipe(postcss([shortColor])) .pipe(gulp.dest(‘final’)); });
我首先創(chuàng)建一個名為CSS的任務。當你要運行相應的功能時可以用到這個名字。您可以在gulp.src()內(nèi)部指定要處理的文件。使用*的CSS將處理“intial”文件夾內(nèi)所有的CSS文件。
接下來,我們使用pipe()函數(shù)來調(diào)用我們的所有插件。要做到這一點,我們需要將所有的插件作為參數(shù)傳遞給postcss()函數(shù)。在我們的基本的例子中,我們實際上只有一個插件需要傳遞。 在下一節(jié),我會告訴你如何傳遞多個插件。插件通過管道后,gulp.dest()將被用于設置處理的文件的目的地。
為了測試,如果一切已正確設置,在“initial”文件夾內(nèi)創(chuàng)建一個style.css文件。 style.css文件將有以下的CSS:
section{ color:white black; }
接下來,你需要在你的終端里運行gulp css命令。此刻,在您的“final”文件夾內(nèi),你應該會看到一個style.css文件,像下面的CSS 一樣:
section{ color:white; background-color:black; }
如果您CSS的樣式和上面所展示的CSS樣式一樣的話,我們就可以認為一切工作正常。
3.安裝多個插件
只使用一個基本的插件并不能從根本上減輕你的工作量。PostCSS有很多令人印象深刻的且令人難以置信的有用的插件,所以在大多數(shù)情況下,你需要使用到的插件不止一個。在本節(jié)中,我將告訴你如何在工作中同時使用多個插件。
您可能會發(fā)現(xiàn)有三個PostCSS插件(包)是非常有用的:即 short, cssnext和 autoprefixer
short將使你少寫并且速記大量的CSS屬性。 例如:
.heading{ font-size:1.25em 2; }
將會被解析成:
.heading{ font-size:1.25em; line-height:2; }
cssnext能夠在你的css樣式表中,使用最新的CSS語法。例如,下面的CSS:
.link{ color:color(green alpha(-10%)); }
將被轉(zhuǎn)換為:
.link{ background:rgba(0, 255, 0, 0.9); }
最后,autoprefixer將會在您的CSS和轉(zhuǎn)換后的樣式文件中添加供應商前綴:
img{ filter:grayscale(0.9); }
轉(zhuǎn)換為:
img{ -webkit-filter:grayscale(0.9); filter:grayscale(0.9); }
現(xiàn)在讓我們看看如何安裝這些插件,然后用它們來改造我們的樣式表。在項目目錄下運行下面的命令:
npm install autoprefixer postcss-short postcss-cssnext --save-dev
我們需要修改我們的gulp task來包含所有這些插件,代替用管道將所有這些插件一個一個的傳遞,我們將它們存儲在易于維護和簡潔的陣列。下面是我們的gulpfile.js的代碼:
vargulp = require(‘gulp’); varpostcss = require(‘gulp-postcss’); varautoprefixer = require(‘a(chǎn)utoprefixer’); varcssnext = require(‘postcss-cssnext’); varshortcss = require(‘postcss-short’); gulp.task(‘css’, function(){varplugins = [ shortcss, cssnext, autoprefixer({browsers: [‘》 1%’], cascade: false}) ]; returngulp.src(‘initial/*.css’) .pipe(postcss(plugins)) .pipe(gulp.dest(‘final’)); });
您可能已經(jīng)注意到了,我已經(jīng)指定了Autoprefixer插件的一些選項。Autoprefixer輸出這些選項確定的CSS,在這種情況下,我說的是插件支持所有全球使用量超過1%的瀏覽器。我也被禁用級聯(lián),讓所有的前綴和不帶前綴屬性左對齊。類似的選項也可用于大多數(shù)其他插件。
為了測試,如果一切正常,將出在樣式表下面的CSS:
.prefix-filter{ display:flex; }.cssshort-section{ text:#333bold justify uppercase 1.25em 1.7.05em; }.cssnext-link{ color:color(blue alpha(-10%)); }.cssnext-link:hover{ color:color(orange blackness(80%)); }
如果現(xiàn)在在終端中運行gulp css,你應該在“final”文件夾中可以得到style.css,如下:
.prefix-filter{ display:-webkit-box; display:flex; }.cssshort-section{ color:#333; font-weight:700; text-align:justify; text-transform:uppercase; font-size:1.25em; line-height:1.7; letter-spacing:.05em; }.cssnext-link{ color:#0000ff; color:rgba(0, 0, 255, 0.9); }.cssnext-link:hover{ color:rgb(51, 33, 0); }
4。插件的執(zhí)行順序
在最后一節(jié)的例子很清楚說明了PostCSS的實用性。所有PostCSS的力量在于它的插件。
我們具體來研究兩個插件 rgba-fallback 和 color-function, rgba-fallback插件會轉(zhuǎn)換一個RGBA顏色為16進制格式,color-function將改變CSS的color()函數(shù)來兼容更多菜單CSS,比方說,你有一下的CSS:
body{ background:color(orange a(90%)); }
如果你運行的顏色功能插件之前的RGBA-后備插件,就像這樣:
var plugins =[ rgbafallback, colorfunction ];
你將得到下面的CSS:
body{ background:rgba(255, 165, 0, 0.9); }
正如你所看到的,在處理CSS時沒有RGBA回退。這樣的異常原因是回退插件運行時,它發(fā)現(xiàn)背景是color(orange a(90%)),并且不知道該怎么辦。后來,color函數(shù)插件執(zhí)行,并從原來的color函數(shù)創(chuàng)建RGBA顏色值。
如果你扭轉(zhuǎn)插件順序,按以下順序運行它們:
var plugins =[ colorfunction, rgbafallback ];
最后的CSS是這樣的:
body{ background:#ffa500; background:rgba(255, 165, 0, 0.9)}
這一次的顏色插件首先把背景色的RGBA值和后備插件層增加一個十六進制回退。
總結(jié)
在本教程中我已經(jīng)介紹了使用gulp和PostCSS一起使用的基本知識。隨著插件和gulp的正確組合,可以節(jié)省開發(fā)的許多時間和避免不必要的麻煩。如果您有任何技術問題或建議,請盡管在本教程的下面進行評論,以便于我們能更好的學習交流。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 《開關電源基礎知識》pdf 0次下載
- PCB應變測試基礎知識
- Git基礎知識綜述 0次下載
- 照明基礎知識之電光源綜述 9次下載
- 示波器探頭的基礎知識 56次下載
- 天線基礎知識與原理 92次下載
- 華為EMC基礎知識匯總資源下載 124次下載
- LED基礎知識教程 45次下載
- 三個被動元件的基礎知識及應用 19次下載
- 機械工程制圖的基礎知識及尺寸注法 30次下載
- JavaFX基礎知識及JavaFX2.0基礎教程 0次下載
- 聲音傳感器基礎知識及安裝 27次下載
- 藍牙模塊基礎知識 57次下載
- MTCH112基礎知識及用戶指南
- 被動元件基礎知識 18次下載
- 射頻與微波基礎知識 652次閱讀
- 電氣技術基礎知識 1336次閱讀
- 電子元器件的基礎知識 4525次閱讀
- 電路基礎知識總結(jié) 4420次閱讀
- 無功補償原理基礎知識詳解 723次閱讀
- 講解電路的基礎知識 1454次閱讀
- 電工基礎知識100問 5130次閱讀
- MOS管的基礎知識介紹 2747次閱讀
- 差分線的基礎知識 2317次閱讀
- 關于mos管的基礎知識 4194次閱讀
- 電感器的基礎知識 1139次閱讀
- Verilog的基礎知識 2271次閱讀
- MOS管的基礎知識 1928次閱讀
- linux操作系統(tǒng)基礎知識 5829次閱讀
- 什么是DCS系統(tǒng)?DCS系統(tǒng)基礎知識入門 4.4w次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1491次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機和 SG3525的程控開關電源設計
- 0.23 MB | 4次下載 | 免費
- 8基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多