用postcss cli运行postcss
一、验证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的更多相关文章
- PostCSS深入学习: PostCSS和Sass、Stylus或LESS一起使用
如果你喜欢使用PostCSS,但又不想抛弃你最喜欢的预处理器.不用担心,你不需要作出二选一的选择,你可以把PostCSS和预处理器(Sass.Stylus或LESS)结合起来使用. 有几个PostCS ...
- 在Linux上用自己编译出来的coreclr与donet cli运行asp.net core程序
先在 github 上签出 coreclr 的源代码,运行 ./build.sh 命令进行编译,编译结果在 coreclr/bin/Product/Linux.x64.Debug/ 文件夹中. 接着签 ...
- 尝试在mac上用dotnet cli运行asp.net core示例程序
自从知道微软用dotnet cli取代dnx之后,一直在等dotnet cli支持asp.net core... 昨天看到这篇新闻(ASP.NET Core 1.0 Hello World)后,才知道 ...
- Windows登录服务器CLI运行脚本出现 syntax error: unexpected end of file 错误的解决
0.前言 通常我们在编辑 Linux 服务器上的文件时,直接在 Linux 环境比较麻烦(当然熟练使用 VIM 的程序员除外哈哈),有时我们会使用 Windows 将文件编辑好再上传到服务器端,我用的 ...
- 在 CSS 预编译器之后:PostCSS
提到css预编译器(css preprocessor),你可能想到Sass.Less以及Stylus.而本文要介绍的PostCSS,正是一个这样的工具:css预编译器可以做到的事,它同样可以做到. “ ...
- [译]PostCSS介绍
PostCSS介绍 原文链接:http://www.smashingmagazine.com/2015/12/introduction-to-postcss/ 转自:http://www.zcfy.c ...
- PostCss 从0开始
PostCss 摘自 http://ju.outofmemory.cn/entry/215105 http://www.w3cplus.com/PostCSS/postcss-deep-dive-pr ...
- [翻译]用PostCSS改善你的CSS代码质量
“代码质量”这个术语对于程序员来说并不陌生.毕竟,每个开发人员都知道,代码只是能工作是不够的.它还应该具备其他要素:它应该是可读的,良好的格式和一致性.它也应该符合一些标准的量化指标.不过这些在写CS ...
- [翻译]PostCSS简介
许多开发人员花时间在使用CSS的预处理器上如less,sass和stylus.这些工具已经成为Web开发的重要组成部分.写一个网站的样式,不使用嵌套,变量或混入等功能很少见.它们每个都是非常实用的,让 ...
随机推荐
- SHA1算法原理
一.SHA1与MD5差异 SHA1对任意长度明文的预处理和MD5的过程是一样的,即预处理完后的明文长度是512位的整数倍,但是有一点不同,那就是SHA1的原始报文长度不能超过2的64次方,然后SHA1 ...
- python实战===教你用微信每天给女朋友说晚安
但凡一件事,稍微有些重复.我就考虑怎么样用程序来实现它. 这里给各位程序员朋友分享如何每天给朋友定时微信发送”晚安“,故事,新闻,等等··· ···最好运行在服务器上,这样后台挂起来更方便. 准备: ...
- linux中fork()函数详解【转】
转自:http://blog.csdn.net/jason314/article/details/5640969 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过 ...
- Kernel 3.0.8 内存管理函数【转】
转自:http://blog.csdn.net/myarrow/article/details/7208777 1. 内存分配函数 相关代码如下: #define alloc_pages(gfp_ma ...
- oracle客户端安装
一.引导安装并配置 1)下载客户端(两个文件) 2)选中两个压缩包解压到同一个文件夹下 3)点击setup 4)选择:创建和配置数据库桌面类选择安装目录,全局数据库名:orcl,密码admin口令管理 ...
- oracle数据文件迁移
这篇文章是从网络上获取的,然后根据内容一步步操作, 1.目前的疑问:移动日志文件的时候,为何要先进行切换? 2.move操作后,再进行rename操作的原理 --------------------- ...
- nagios系列(五)之nagios图形显示的配置及自定义插件检测密码是否修改详解
nagios图形显示的配置 在服务端安装相关软件 #1.图形显示管理的依赖库 yum install cairo pango zlib zlib-devel freetype freetype-dev ...
- STM32F412应用开发笔记之十:多组分气体分析仪设计验证
本次将NUCLEO-F412ZG应用于我们的多组分气体分析仪的实现试验,从整体上测试实际项目的应用情况. 一.项目概述 多组分气体分析仪是我公司近期研发的三个主要产品之一.采用模块化设计,可增减配置, ...
- SpringMVC(1):Web MVC简介
原文出处: 张开涛 Web MVC简介 1.1.Web开发中的请求-响应模型: 在Web世界里,具体步骤如下: 1. Web浏览器(如IE)发起请求,如访问 2. Web服务器(如Tomcat)接 ...
- 服务端工程师入门与进阶 Java 版
前言 欢迎加入我们.这是一份针对实习生/毕业生的服务端开发入门与进阶指南.遇到问题及时问你的 mentor 或者直接问我. 建议: 尽量用google查找技术资料. 有问题在stackoverflow ...