热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于PostCSS的一点小科普

本文讲的是关于PostCSS的一点小科普,PostCSS起源于2013年9月,发展到现在,已经有很多开发者在工作中使用它。如果你尚未接触过
本文讲的是关于PostCSS的一点小科普,

PostCSS起源于2013年9月,发展到现在,已经有很多开发者在工作中使用它。如果你尚未接触过PostCSS,这篇文章正适合你。

PostCSS是一个使用Javascript插件来转换CSS的工具。

PostCSS本身很小,其只包含CSS解析器,操作CSS节点树的API,资源生成器(译者注1:原文是source map),以及一个节点树字符串化工具。所有的黑魔法都是通过利用插件实现的。

截止目前,PostCSS的生态圈内已经拥有超过100种插件。这些插件可以做太多的事情,比如lint(译者注2:一种用来检测CSS代码的工具),添加vendor prefixes(译者注3:添加浏览器内核前缀,可以使用浏览器的一些独有特性),允许使用最新的CSS特性,在你的CSS里提供统计数据,或者是允许你使用Sass,Less或是StylusCSS预处理器。

让我们看看以下十种插件

Autoprefixer

根据用户的使用场景来解析CSS和添加vendor prefixes(前文注2)。

PostCSS Focus

一种利用键盘操作为每个:hover添加:focus选择器的PostCSS插件。

PreCSS

一个允许你在代码中使用类似Sass标记的插件。

Stylelint

一种强大的,先进的可以使你在CSS样式中保持一致性,避免错误的CSS linter工具。

PostCSS CSS Variables

一种将用户自定义CSS变量(CSS variables)转化为静态样式的插件。

PostCSS Flexbugs Fixes

一种用于修复flexbug的bug的插件。

PostCSS CSSnext

一种可以让你使用CSS最新特性的插件。它通过将最新的CSS特性转变为现阶段浏览器所兼容的特性,这样你不用再等待浏览器对某一特定新特性的支持。

PostCSS CSS Stats

一种支持cssstats的插件。这个插件将会返回一个cssstatus对象,这样你可以使用它来进行CSS分析。

PostCSS SVGO

优化在PostCSS中内联SVG。

PostCSS Style Guide

一种可以自动生成风格指导的插件。将会在Markdown中生成CSS注释,并在生成的HTML文档中显示。

如果你想编写自己的插件,并希望将其贡献给社区的话,请确保你是先看过guidelines这篇文档还有PostCSS Plugin Boilerplate这篇官方文档。

在你的工作中使用PostCSS

PostCSS是用Javascript所编写的,这使得我们在Grunt,Gulp或Webpack等常用的前端构建工具中使用它变得非常方便。

下面是我们使用Autoprefixer插件的示例。

npm install autoprefixer --save-dev

Gulp
如果你使用Gulp,那么你需要安装gulp-postcss。

npm install --save-dev gulp-postcss

gulp.task('autoprefixer', function () {var postcss = require('gulp-postcss');var autoprefixer = require('autoprefixer');return gulp.src('./src/*.css').pipe(postcss([ autoprefixer({ browsers: ['last 2 versions'] }) ])).pipe(gulp.dest('./dest'));
});

Grunt
如果你使用Grunt,那么你需要安装grunt-postcss。

npm install grunt-postcss --save-dev

module.exports = function(grunt) {grunt.loadNpmTasks('grunt-postcss');grunt.initConfig({postcss: {options: {map: true,processors: [require('autoprefixer')({browsers: ['last 2 versions']})]},dist: {src: 'css/*.css'}}});grunt.registerTask('default', ['postcss:dist']);};

Webpack
如果你使用Webpack,那么你需要安装postcss-loader。

npm install postcss-loader --save-dev

var autoprefixer = require('autoprefixer');module.exports = {module: {loaders: [{test: /\.css$/,loader: "style-loader!css-loader!postcss-loader"}]},postcss: function () {return [autoprefixer];}
}

关于怎么整合PostCSS,你可以从这里PostCSS repo获取到帮助。

最后最后的诚心安利~

在有些时候,在新技术,新工具,新框架发布的时候,去使用并观察其发展趋势无疑是一种明智的行为。现在,PostCSS已经发展到一个相当成熟的阶段,我强烈建议你在你的工作中使用它。因为它现在已经在工程中被广泛的使用,同时在未来一段时间内它不会发生太大的变化。




作者:Zheaoli
链接:http://www.jianshu.com/p/7f8a5d83f4b7
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。





原文发布时间为:2016年06月09日

本文来自云栖社区合作伙伴掘金,了解相关信息可以关注掘金网站。



推荐阅读
  • webui之常用js操作(webui界面是什么)
    本文目录一览:1、web前端开发需要掌握的几个必备技术 ... [详细]
  • 1.打包css,需要安装css-loader和style-loaderyarnadd--devcss-loaderstyle-loader或者npminstall-- ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • 为什么三角形与菜单背景的颜色不同? - Why is the triangle a different colour shade to the menu background?
    Imnotunderstandingastowhythetrianglewhichappearswhenthemousehoversoverthemenuitem, ... [详细]
  • 前端不规则图像点击_如何在前端开发的潮流中快速学习学好学以致用?
    大家好,我是致力于前端开发,前端设计,前端入门的前端小姐姐,今天为大家带来的前端新知识是【雪碧图和滑动门】,不 ... [详细]
  • 使用浏览器的主滚动条 ... [详细]
  • 一、选择器CSS规则由选择器以及声明组成。*选择器分组*h1,h2,h3{}*后代选择器*pem{}*子元素选择器*pem{}*兄弟选择器(选择位于其后具有相同父元素的元素)*h ... [详细]
  • PHP引用的概念和用法详解
    本文详细介绍了PHP中引用的概念和用法。引用是指不同的变量名访问同一个变量内容,类似于Unix文件系统中的hardlink。文章从引用的定义、作用、语法和注意事项等方面进行了解释和示例。同时还介绍了对未定义变量使用引用的情况,以及在函数和new运算符中使用引用的注意事项。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
  • DOM事件大全
    1.事件:js与html的交互就是通过事件的,观察者模式2.事件流:从页面中接收事件的顺序IE::事件冒泡流,事件冒泡,事件从最具体的元素接收,然后逐级向上传播,主流浏览器都支持N ... [详细]
  • backgroundposition和长图实现鼠标悬浮动画效果
    以下图片及代码均来自京东云点击这里进入京东云思路和效果图:background-position:00可以用js动态的将长图按帧数一帧一阵的展示出来效果类似gif,红框就是可视界面 ... [详细]
  • css自适应字体样式?如果是一排文字,一个background‘red’;就搞定了。是多行的话,只有根据文字行高,用一张背景图横向重复。css样式自适应分辨率高度和宽度尽量使用百分 ... [详细]
  • ForabuttonIhave3possibleclasses:state-normal,state-focusandstate-hover.Allhaveth ... [详细]
  • HTML制作简单首页导航
    h1大标题:李广程的作业列表查看演示地址一:http:js.lgcweb.cn查看演示备用地址:http:39.105.0.128Ja ... [详细]
author-avatar
yellow start
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有