一、验证autoprefixer插件
1、新建项目

  • 新建文件夹postcss;
  • 在postcss目录中,新建package.json文件,新建css文件夹;
  • 在css文件夹新建outfile.css,infile.css文件;
  • 在outfile.css文件中写css3语法。

2、安装插件
A、安装postcss-cli插件

cnpm i -D  postcss-cli

B、安装autoprefixer插件

cnpm i -D  autoprefixer

3、配置package.json文件

{
  "name": "postcss",
  "version": "1.0.0",
  "scripts": {
    "postcss": "postcss -u autoprefixer -o css/outfile.css css/infile.css"
  },
  "devDependencies": {
    "autoprefixer": "^7.1.4",
    "postcss-cli": "^4.1.1"
  }
}

4、执行命令

npm run postcss

5、查看文件

/* infile.css */
.app {
  display: flex;
  border-radius: 5px;
  width: 150px;
  height: 50px;
  border: 1px solid #0f0;
  transform: rotate(30deg);
}

/* outfile.css */
.app {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  border-radius: 5px;
  width: 150px;
  height: 50px;
  border: 1px solid #0f0;
  -webkit-transform: rotate(30deg);
          transform: rotate(30deg);
}

如果想在命令行验证其他插件功能,重复上述步骤即可,下面只说插件们输入和输出。
二、postcss-import

/* imported.css */
body {
  background: red;
}

/* infile.css */
@import './imported.css';
body {
  color: blue;
  font-size: 12px;
}

/* outfile.css */
body {
  background: red;
}
body {
  color: blue;
  font-size: 12px;
}

三、postcss-mixins

/* infile.css */
@define-mixin amixin $num, $color: blue {
  .ele-$(num) {
    color: $color;
    @mixin-content;
  }
  .ele-$(num):hover {
    color: white;
    background: $color;
  }
}

@mixin amixin one {
  background: #000;
  border: 1px solid #dfdfdf;
}
@mixin amixin two, red {
  background: pink;
  font-size:18px;
}

/* outfile.css */
.ele-one {
    color: blue;
  background: #000;
  border: 1px solid #dfdfdf;
  }

.ele-one:hover {
    color: white;
    background: blue;
  }
.ele-two {
    color: red;
  background: pink;
  font-size:18px;
  }
.ele-two:hover {
    color: white;
    background: red;
  }

四、postcss-simple-vars

/* infile.css */
$dir:    top;
$blue:   #056ef0;
$column: 200px;

.vars-1 {
  background: $blue;
  width: $column;
}
.vars-2 {
  width: calc(4 * $column);
  margin-$(dir): 10px;
}

/* outfile.css */
.vars-1 {
  background: #056ef0;
  width: 200px;
}
.vars-2 {
  width: calc(4 * 200px);
  margin-top: 10px;
}

五、postcss-nested

/* infile.css */
.nested{
  font-size: 15px;
  p{
    line-height: normal;
  }
  &_title{
    font-weight:;
  }
}

/* outfile.css */
.nested{
  font-size: 15px;
}

.nested p{
    line-height: normal;
  }

.nested_title{
    font-weight:;
  }

六、postcss-extend

/* infile.css */
%placeholder1{
  color: red;
}
.extended1{
  font-size: 15px;
  @extend %placeholder1;
}
@define-placeholder placeholder2{
  color: blue;
}
.extended2{
  font-size: 18px;
  @extend placeholder2;
}
.placeholder3{
  color: orange;
}
.extended3{
  font-size: 25px;
  @extend .placeholder3;
}

/* outfile.css */
.extended1{
  color: red;
}
.extended1{
  font-size: 15px;
}
.extended2{
  color: blue;
}
.extended2{
  font-size: 18px;
}
.placeholder3, .extended3{
  color: orange;
}
.extended3{
  font-size: 25px;
}

七、postcss-conditionals 

/* infile.css */
@define-mixin amixin $val:5{
  .condition{
    background: red;
    @mixin-content;
    @if $val < 5{
      color: black;
    } @else {
      color: white;
    }
  }
}
@mixin amixin{
  font-size: 12px;
}
@mixin amixin 3{
  font-size:15px;
}

/* outfile.css */
.condition{
    background: red;
  font-size: 12px;
      color: white
  }
.condition{
    background: red;
  font-size:15px;
      color: black
  }

条件语句在混合中定义的,运行的时候,记得安装混合命令和条件命令。

八、postcss-for

/* infile.css */
@for $i from 1 to 4 {
  .tab-$i { width: $(i)px; }
}

@for $i from 1 to 5 by 2 {
  .menu-$i { width: $(i)px; }
}

/* outfile.css */
.tab-1 { width: 1px; }
.tab-2 { width: 2px; }
.tab-3 { width: 3px; }
.tab-4 { width: 4px; }

.menu-1 { width: 1px; }

.menu-3 { width: 3px; }

.menu-5 { width: 5px; }

九、postcss-each

/* infile.css */
@each $icon in dog, tiger, lien {
  .icon-$(icon) {
    background: url('icons/$(icon).png');
  }
}

@each $val, $i in dog, tiger {
  .$(val)-img {
    background: url("$(val)_$(i).png");
  }
}

@each $animal, $color in (dog, lien), (black, blue) {
  .$(animal)-icon {
    background-image: url('/images/$(animal).png');
    border: 2px solid $color;
  }
}

/* outfile.css */
.icon-dog {
    background: url('icons/dog.png');
  }
.icon-tiger {
    background: url('icons/tiger.png');
  }
.icon-lien {
    background: url('icons/lien.png');
  }

.dog-img {
    background: url("dog_0.png");
  }

.tiger-img {
    background: url("tiger_1.png");
  }

.dog-icon {
    background-image: url('/images/dog.png');
    border: 2px solid black;
  }

.lien-icon {
    background-image: url('/images/lien.png');
    border: 2px solid blue;
  }

十、postcss-color-alpha

/* infile.css */
.alpha-c1 {
  color: black(.1)
}
.alpha-c2 {
  color: white(0.2);
}
.alpha-c3 {
  color: #0fc.3;
}
.alpha-c4 {
  color: #00ffcc.45;
}
.alpha-c5 {
  border-color: #000 #000.5 white white(0.5);
}
.alpha-c6 {
  text-shadow: 1px 1px 1px #0fc.1, 3px 3px 5px rgba(#fff, .5);
}

/* outfile.css */
.alpha-c1 {
  color: rgba(0, 0, 0, 0.1)
}
.alpha-c2 {
  color: rgba(255, 255, 255, 0.2);
}
.alpha-c3 {
  color: rgba(0, 255, 204, 0.3);
}
.alpha-c4 {
  color: rgba(0, 255, 204, 0.45);
}
.alpha-c5 {
  border-color: #000 rgba(0, 0, 0, 0.5) white rgba(255, 255, 255, 0.5);
}
.alpha-c6 {
  text-shadow: 1px 1px 1px rgba(0, 255, 204, 0.1), 3px 3px 5px rgba(255, 255, 255, 0.5);
}

十一、总结
本篇内容通过命令行方式介绍了一些postcss插件,来模拟sass预处理器的功能,变量,继承,嵌套,混合,引入,个人还是觉得sass在预处理器方面做得好。
遇到了一个问题,在infile.css文件中,写入变量和混合代码,运行postcss-simple-vars的相关命令时,老是报错说混合中的形参没定义,导致变量代码不能成功编译出来。然而,如果运行postcss-mixins相关命令,混合代码可以正常编译。

用postcss cli运行postcss的更多相关文章

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

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

  2. 在Linux上用自己编译出来的coreclr与donet cli运行asp.net core程序

    先在 github 上签出 coreclr 的源代码,运行 ./build.sh 命令进行编译,编译结果在 coreclr/bin/Product/Linux.x64.Debug/ 文件夹中. 接着签 ...

  3. 尝试在mac上用dotnet cli运行asp.net core示例程序

    自从知道微软用dotnet cli取代dnx之后,一直在等dotnet cli支持asp.net core... 昨天看到这篇新闻(ASP.NET Core 1.0 Hello World)后,才知道 ...

  4. Windows登录服务器CLI运行脚本出现 syntax error: unexpected end of file 错误的解决

    0.前言 通常我们在编辑 Linux 服务器上的文件时,直接在 Linux 环境比较麻烦(当然熟练使用 VIM 的程序员除外哈哈),有时我们会使用 Windows 将文件编辑好再上传到服务器端,我用的 ...

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

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

  6. [译]PostCSS介绍

    PostCSS介绍 原文链接:http://www.smashingmagazine.com/2015/12/introduction-to-postcss/ 转自:http://www.zcfy.c ...

  7. PostCss 从0开始

    PostCss 摘自 http://ju.outofmemory.cn/entry/215105 http://www.w3cplus.com/PostCSS/postcss-deep-dive-pr ...

  8. [翻译]用PostCSS改善你的CSS代码质量

    “代码质量”这个术语对于程序员来说并不陌生.毕竟,每个开发人员都知道,代码只是能工作是不够的.它还应该具备其他要素:它应该是可读的,良好的格式和一致性.它也应该符合一些标准的量化指标.不过这些在写CS ...

  9. [翻译]PostCSS简介

    许多开发人员花时间在使用CSS的预处理器上如less,sass和stylus.这些工具已经成为Web开发的重要组成部分.写一个网站的样式,不使用嵌套,变量或混入等功能很少见.它们每个都是非常实用的,让 ...

随机推荐

  1. 2017-2018-2 20155303『网络对抗技术』Exp7:网络欺诈防范

    2017-2018-2 『网络对抗技术』Exp7:网络欺诈防范 --------CONTENTS-------- 一.原理与实践说明 1.实践目标 2.实践内容概述 3.基础问题回答 二.实践过程记录 ...

  2. kafka系列四、kafka架构原理、高可靠性存储分析及配置优化

    一.概述 Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cl ...

  3. kafka系列三、Kafka三款监控工具比较

    转载原文:http://top.jobbole.com/31084/ 通过研究,发现主流的三种kafka监控程序分别为: Kafka Web Conslole Kafka Manager KafkaO ...

  4. Sql 正确删除用户过期的数据

    怎样才算是正确的删除过期的数据呢?先交代一下前提,XX网站上面有一个放心企业专区,办理超级会员即可成为放心企业,放心企业可设置推荐职位展示在放心企业专区,信息都是存放在Info表中的,所谓的推荐职位就 ...

  5. 安装最新版的2016版Pycharm后,激活码

    2016年安装Pycharm后,过段时间过期.亲测只需要复制以下激活码可以完美解决激活问题,又可以开心的写Python了.以下为激活码内容: BIG3CLIK6F-eyJsaWNlbnNlSWQiOi ...

  6. Go语言规格说明书 之 通道类型(Channel types)

    go version go1.11 windows/amd64 本文为阅读Go语言中文官网的规则说明书(https://golang.google.cn/ref/spec)而做的笔记,介绍Go语言的 ...

  7. [转] MachingLearning中的距离相似性计算以及python实现

    参考:https://blog.csdn.net/gamer_gyt/article/details/75165842#t16  https://blog.csdn.net/ymlgrss/artic ...

  8. Linear Algebra(未完待续)

    [矩阵消元] The result of multiplying a matrix by some vector is a combination of the columns of the matr ...

  9. HDU 5988 Coding Contest(费用流+浮点数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5988 题目大意: 给定n个点,m条有向边,每个点是一个吃饭的地方,每个人一盒饭.每个点有S个人,有B盒 ...

  10. poj1742 多维背包

    普通的多维背包做不了,需要优化一下 但是没有学优化..别的方法也是可以做的 省去一个 表示阶段的 i 维度,dp[j]表示面值为j的钱是否被凑出来了,used[j]表示第i种硬币在凑面值为j的时候被用 ...