Sass 团队建立了 Compass 大大提高CSSer的工做效率,你无需考虑各类浏览器前缀兼,只须要按官方文档的书写方式去写,会获得加上浏览器前缀的代码,以下:javascript
.row { @include display-flex; }
会获得以下代码:css
.row { display: -webkit-flex; display: flex; }
可是, 作为一个长期用原生CSS书写方式的CSSer,不太习惯去官方查文档,再以 @include
方式书写。java
那么问题来了,我只能放弃高效率方式么?git
其实否则, Autoprefixer 可以帮助你。github
其实, Autoprefixer 也仅仅是 PostCSS 其一个最出名的插件。web
来吧, 来看张图:npm
这样,以一种原生CSS的书写方式, 而后还能够帮你解决浏览器前缀、IE兼容、如下一代CSS书写方式兼容如今浏览器, 是否是很酷?json
哦, 其实应该说更简单、更优雅, 不用查文档, 不用 @include
。gulp
这个就是Twitter推出的postcss, 听说Google、阿里、Shopify, Twitter就不用说了。浏览器
下面看下PostCSS一些基本使用方法:
构建工具为 Gulp
基于 PostCSS
PostCSS插件 CSSNext 用下一代CSS书写方式兼容如今浏览器
PostCSS插件 Autoprefixer 为CSS补全浏览器前缀
PostCSS插件 CSS Grace 让CSS兼容旧版IE
{ "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" }
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