一、sass和postcss
sass、less、stylus,三者是css预处理器,使用预编码来处理css,然后编译成线上需要的css。
postcss是处理你写好的css,让你的css更健康,对浏览器更友好。
所以sass和postcss是两码事儿,彼此都有独一无二的地位,不能互相取代,实际开发过程中,推荐sass+postcss,前者生成css,后者生成更好的css。当然,随着postcss插件的增多,sass能做的事,postcss插件也可以办到,因此独立使用postcss进行开发是今后的趋势,它是css界的babel。

二、postcss的优势
1、可以像使用css一样使用postcss;
postcss和sass不同,它不用建立其他后缀名的文件,postcss从始至终的操作对象都是css文件,所以在学习postcss的时候,你可以暂时失忆,忘了sass。如果你没学过sass,less,只懂原生css,这丝毫不影响你学习postcss,从某种角度来说,反而是好事。
2、postcss速度很快,测试嵌套,变量,计算得出如下数据;

postcss: 36 ms
Rework: 77 ms (2.1 times slower)
libsass: 136 ms (3.8 times slower)
Less: 160 ms (4.4 times slower)
Stylus: 167 ms (4.6 times slower)
Stylecow: 208 ms (5.7 times slower)
Ruby Sass: 1084 ms (30.1 times slower)

3、插件系统提供不同的功能;
比如postcss的招牌插件autoprefixer,给css3属性加前缀;再如cssnano,压缩优化css;或者cssnext,让你提前使用未来css语法;或者小功能插件,比如画圆,画三角形,清除浮动,定位,居中;或者处理跨浏览器兼容性的样式,特别是如何对IE老版本做降级处理,postcss-color-rgba-fallback,postcss-will-change;或者网格系统lost插件。Google在2012年停止了对IE8的支持,而且在2013年对IE9的支持也慢慢在降低。微软公司2016年也不再支持IE8。Bootstrap4最近也不支持IE8。

其实有些地方,sublime中的插件已经实现,而且很好用,我觉得就不需要postcss插件了,或者自己多写两行代码即可,不必引入postcss插件。我个人不太喜欢过多依赖插件和工具,尤其是为了一点代码和功能引入插件,有点小题大做。哈哈,要知道,武林高手不应该被武器所左右,空手道依然可以降服千军万马。

4、可以创建自己的插件;
5、可以定制自己的预处理器;
6、粒子化,模块化。

三、postcss简介6.0.x
postcss起源于2013年9月,它把css解析为抽象语法树,再经过postcss插件的处理,输出代码字符串,生成新的css。
postcss本身很小,其只包含css解析器,操作css节点树的API,资源生成器(source map),以及一个节点树字符串化工具,所有的黑魔法都是通过利用插件实现的,postcss的插件都是使用JavaScript写的,每个postcss插件都是一个NodeJS的模块。
在学习postcss之前,有个疑问,postcss中的autoprefixer插件和sublime中的autoprefixer插件作用一样吧,都是在一些css属性前加浏览器前缀。前者看上去是一个自动化,只要安装后,在代码中引入插件即可。后者是编辑器中的插件,属于手动操作,写css的时候,按下对应快捷键即可。
我还有个疑问,webpack中的插件也可以做代码压缩优化,我们是用postcss的插件,还是用webpack的插件?sublime里面也有插件,babel里面也有很多插件,这么多选择,按照自己的需求和爱好来吧。

四、postcss运行方式

1、命令行postcss-cli
2、在webpack构建中运行

3、在线编译
A、在codepen注册账号;
B、新建一个pen,然后设置css为postcss语法;

C、在css面板添加依赖插件;

D、开始写代码,html,css,js。

E、在预览区查看效果

postcss那些事儿的更多相关文章

  1. 说说Makefile那些事儿

    说说Makefile那些事儿 |扬说|透过现象看本质 工作至今,一直对Makefile半知半解.突然某天幡然醒悟,觉得此举极为不妥,只得洗心革面从头学来,以前许多不明觉厉之处顿时茅塞顿开,想想好记性不 ...

  2. 展望未来:使用 PostCSS 和 cssnext 书写 CSS

    原文链接:A look into writing future CSS with PostCSS and cssnext 译者:nzbin 像twitter,google,bbc使用的一样,我打算看一 ...

  3. 总结iOS开发中的断点续传那些事儿

    前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...

  4. PostCSS深入学习: PostCSS和Sass、Stylus或LESS一起使用

    如果你喜欢使用PostCSS,但又不想抛弃你最喜欢的预处理器.不用担心,你不需要作出二选一的选择,你可以把PostCSS和预处理器(Sass.Stylus或LESS)结合起来使用. 有几个PostCS ...

  5. 在 CSS 预编译器之后:PostCSS

    提到css预编译器(css preprocessor),你可能想到Sass.Less以及Stylus.而本文要介绍的PostCSS,正是一个这样的工具:css预编译器可以做到的事,它同样可以做到. “ ...

  6. setTimeout那些事儿

    一.setTimeout那些事儿之单线程 一直以来,大家都在说Javascript是单线程,浏览器无论在什么时候,都且只有一个线程在运行JavaScript程序. 但是,不知道大家有疑问没——就是我们 ...

  7. Javascript中关于cookie的那些事儿

    Javascript-cookie 什么是cookie? 指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).简单点来说就是:浏览器缓存. cookie由什 ...

  8. PostCSS一种更优雅、更简单的书写CSS方式

    Sass团队创建了Compass大大提升CSSer的工作效率,你无需考虑各种浏览器前缀兼,只需要按官方文档的书写方式去写,会得到加上浏览器前缀的代码,如下: .row { @include displ ...

  9. webpack那些事儿

    webpack那些事儿01-webpack到底是什么 webpack那些事儿02-从零开始 webpack那些事儿03-热插拔 hot webpack那些事儿04-spa项目实战分析 webpack那 ...

随机推荐

  1. 2018-2019-2 网络对抗技术 20165227 Exp1 PC平台逆向破解

    2018-2019-2 网络对抗技术 20165227 Exp1 PC平台逆向破解 实验内容及步骤 实验一:直接修改程序机器指令,改变程序执行流程 知识要求:Call指令,EIP寄存器,指令跳转的偏移 ...

  2. 【docx4j】docx4j操作docx,实现替换内容、转换pdf、html等操作

    主要是想要用此功插件操作docx,主要的操作就是操作段落等信息,另外,也想实现替换docx的内容,实现根据模板动态生成内容的效果,也想用此插件实现docx转换pdf. word的格式其实可以用xml来 ...

  3. SVG2PNG(前台和后台将SVG转换为PNG)--amcharts导出png

    在项目中用到了amcharts,amcharts图标统计插件是利用SVG实现的,其自带下载png功能,但是不支持IE以下浏览器.因此研究了SVG转换为png,最终实现的效果是将amcharts生成一张 ...

  4. jQuery中【width(),innerWidth(),outerWidth()】

    这个问题,已经别扭我多年了,今天终于彻底解决了,拿出来庆贺一下.jquery作为开源项目,无论从思路上,还是从严谨性上,让人崇敬. 随着时间的流逝,jquery的一些功能被逐渐挖掘出来.通过jQuer ...

  5. 搭建RDA交叉编译器

    apt-get install subversion //安装版本控制系统,便于管理文件目录 apt-get install make atp-get install gcc =======set e ...

  6. 『转载』hadoop2.x常用端口、定义方法及默认端口

    『转载』hadoop2.x常用端口.定义方法及默认端口 1.问题导读 DataNode的http服务的端口.ipc服务的端口分别是哪个? NameNode的http服务的端口.ipc服务的端口分别是哪 ...

  7. 脚本检测CDN节点资源是否与源站资源一致

    需求: 1.所有要检测的资源url放到一个单独文件中 2.检测cdn节点资源大小与源站文件大小是否一致 3.随机抽查几个资源,检查md5sum是否一致 4.使用多线程,可配置线程数 代码目录: hex ...

  8. js 数组、对象转json 以及json转 数组、对象

    1.JS对象转JSON 方式:JSON.stringify(obj) var json = {"name":"iphone","price" ...

  9. Android之 看“马达”如何贯通Android系统 (从硬件设计 --> 驱动 --> HAL --> JNI --> Framework --> Application)

    在Android 2.3(Gingerbread) 系统的时候,我写过一篇关于“Android 震动马达系统“的文章,当时的Linux内核还是2.6版本的.写那篇文章的目的,是想彻底的了解从硬件到驱动 ...

  10. 《MATLAB Deep Learning:With Machine Learning,Neural Networks and Artificial Intelligence》选记

    一.Training of a Single-Layer Neural Network 1 Delta Rule Consider a single-layer neural network, as ...