Sass團隊創建了Compass大大提升CSSer的工作效率,你無需考慮各種瀏覽器前綴兼,只需要按官方文檔的書寫方式去寫,會得到加上瀏覽器前綴的代碼,如下:
.row {
@include display-flex;
}
會得到如下代碼:
.row {
display: -webkit-flex;
display: flex;
}
但是, 做為一個長期用原生CSS書寫方式的CSSer,不太習慣去官方查文檔,再以@include
方式書寫。
那么問題來了,我只能放棄高效率方式么?
其實不然, Autoprefixer能夠幫助你。
其實, Autoprefixer也僅僅是PostCSS其一個最出名的插件。
來吧, 來看張圖:
這樣,以一種原生CSS的書寫方式, 然后還可以幫你解決瀏覽器前綴、IE兼容、以下一代CSS書寫方式兼容現在瀏覽器, 是不是很酷?
哦, 其實應該說更簡單、更優雅, 不用查文檔, 不用
@include
。
這個就是Twitter推出的PostCSS, 據說Google、阿里、Shopify, Twitter就不用說了, 他們都在用PostCSS。
上圖有用到的PostCSS插件有:
CSSNext, 可以看到下一代CSS開始支持變量
了,這是否意味着'Sass'、'Less'不再重要了? 更多方法法可訪問:http://cssnext.io/features/
Autoprefixer, 知名度很高的PostCSS插件,支持Gulp
、Webpack
、Grunt
、Compass
等,了解更多可訪問: https://github.com/postcss/autoprefixer
CSS Grace, 國內大神寫的實現了大部分常用的 IE Hack
的插件, 中文文檔: https://github.com/cssdream/cssgrace/blob/master/README-zh.md
當然還有更多PostCSS插件可訪問: http://postcss.parts
好了,下面看下PostCSS一些基本使用方法吧:
准備
構建工具為Gulp
基於PostCSS
PostCSS插件 CSSNext 用下一代CSS書寫方式兼容現在瀏覽器
PostCSS插件 Autoprefixer 為CSS補全瀏覽器前綴
PostCSS插件 CSS Grace 讓CSS兼容舊版IE
package.json
{
"name": "postcss usage",
"version": "1.0.0",
"description": "postcss cssnext",
"main": "gulpfile.js",
"dependencies": {
"autoprefixer": "^5.2.0",
"autoprefixer-core": "^5.2.1",
"cssgrace": "^2.0.2",
"gulp": "^3.9.0",
"gulp-less": "^3.0.3"
},
"devDependencies": {
"autoprefixer": "^5.2.0",
"autoprefixer-core": "^5.2.1",
"cssgrace": "^2.0.2",
"cssnext": "^1.8.4",
"gulp-postcss": "^6.0.0",
"postcss": "^4.1.16"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"postcss",
"gulp"
],
"author": "givebest",
"license": "ISC"
}
gulpfile.js
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var autoprefixer = require('autoprefixer');
var cssgrace = require('cssgrace');
var cssnext = require('cssnext');
gulp.task('css', function () {
var processors = [
autoprefixer({browsers: ['last 3 version'],
cascade: false,
remove: false
}),
cssnext(),
cssgrace
];
return gulp.src('./src/css/*.css')
.pipe(postcss(processors))
.pipe(gulp.dest('./dist'));
});
gulp.task('watch', function(){
gulp.watch('./src/css/*.css', ['css']);
});
gulp.task('default', ['watch', 'css']);
安裝
npm install
使用
gulp