0

0

利用PostCSS跳进未来的CSS- JS-Republic's Blog

巴扎黑

巴扎黑

发布时间:2017-05-01 09:46:23

|

2348人浏览过

|

来源于php中文网

原创

  在说明 PostCSS是什么之前,我们先理解PostCSS不是什么。

  实质上,人们第一次听说 PostCSS时,他们倾向于认为这是一款新出的CSS预处理器,类似SASS、LESS和Stylus。

  如果你想把它当作预处理器来用,那么它会如预处理器那样工作。同时它也有后处理器、优化工具、兼容未来语法的插件......你想要的功能应有尽有。

  PostCSS的主要目的是能让你使用各种工具满足你的需要。

  所以你应该把 PostCSS当作一个构建工具。它能让你用各类JavaScript插件来维护你的CSS。 这些插件可以在postcss.parts 这里找到

  由于有太多的插件,我们将通过这篇文章检阅一下那些常用和强大的插件。

  同时你也会了解到如何搭配使用Gulp创建一个单任务来处理CSS文件。

  Autoprefixer

  如果你之前曾用过预处理器,你该体验到不必再写前缀是件多么愉悦的事。

  举个例子,不必再这样写

:-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那样的预处理器,但你依然能通过一些插件来处理Sass类格式的文件。

  首选的插件是PreCSS,它集合了大量的PostCSS插件 ,让你可以编写Sass语法的样式。

  我邀请你阅读 文档来了解更多细节,也可以玩玩这个可互动 demo 来测试各种可能性。

  CssNext

  CSS4,下一代CSS,承诺将改变CSS的书写方式和选择器的使用方式。

  遗憾的是,这个版本的规范依然在制定中,并且尚未公布发行时间。

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

  CSSNext的官网列出了所有支持的功能:cssnext.io/features/

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

  CssNano

  最后但同样重要的,关于优化。CssNano能利用不同的modules压缩和优化你的CSS代码。

  我推荐你禁用the z-index,因为它很可能会扰搞乱你原本正常的z-index。

  你可以检阅这份可优化列表:cssnano.co/optimisations/ 你也可以在Gitter上和CssNano的创造者聊聊:gitter.im/ben-eb/cssnano

  现在,我们看看如何利用Gulp使用这些插件。

  Gulp x PostCSS

  Gulp

  首先,以dev dependencies 的方式安装Gulp、Gulp Load Plugins 和Gulp PostCSS 。在控制台执行以下命令:

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

  在你需要使用Gulp的地方创建一个 gulpfile.js 并加入如下代码。

var gulp = require('gulp'),

  添加 Gulp Load PLugins的代码:

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

  Gulp Load Plugins依赖会 通过$调用你需要的插件。

  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任务

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

 });

  在这个任务中,我们首先用一个变量来保存准备用到的PostCSS插件

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

  设置CssNano的 zindex:false 禁止其重设我们的 z-index。

  为了处理CSS文件,我们需要检索如下文件:

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

  然后通过processors变量内的PostCSS插件来处理CSS文件。

  使用pipe方法串联起处理过程

.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'));
});

  在 Tuts+上有份完整且详细的指南,我强烈推荐你读读:webdesign.tutsplus.com/series/postcss-deep-pe–cms-889

  我也利用这些PostCSS插件创造了一份boilerplate样板,可以帮你快速上手: /github.com/PierrickGT/PCGB

  blog.js-republic.com/jump-into-the-future-of-css-with-postcss/

相关文章

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

3

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

7

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

11

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

1

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

4

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

9

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

14

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

2

2026.01.09

php网站搭建教程大全
php网站搭建教程大全

本合集专为零基础用户打造,涵盖PHP网站搭建全流程,从环境配置到实战开发,免费、易懂、系统化,助你快速入门建站!

6

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 8.2万人学习

Bootstrap 4 中文开发手册
Bootstrap 4 中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号