CSS工程化简单介绍 PostCSS介绍与插件使用

css工程化在不同公司有不同做法,主要关注四个方面

组织:代码的组织,怎么划分模块,怎么更方便合作
优化:代码怎样写更好,团队合作中为什么要这么做
构建:代码的压缩、上线等等
维护

PostCSS介绍

知识

CSS->PostCSS解析转化->CSS

PostCSS解析转化阶段可以做的事: 模块化,加前缀,兼容性等等

PostCSS本身只有解析能力
各种神器特性全靠插件
目前至少有200多个插件

import 模块合并
autoprefixier自动加前缀
cssnano压缩代码
cssnext使用CSS新特性
precss变量、mixin、循环等

实战

安装

npm install postcss-cli

windows用户下载一个git bash
cd到我们安装了postcss-cli的目录下
目录下建src文件和build文件
解析源文件

./node_modules/.bin/postcss src/01-postcss.css

导出到目标文件

./node_modules/.bin/postcss src/01-postcss.css -o build/01-postcss.css

autoprefixer

postcss.config.js

const autoprefixer = require('autoprefixer');

module.exports = {
	plugins: [
	    autoprefixer({
	    	browsers:['last 2 versions']
	    })
	]
};
browsers:['last 2 versions']//适配最近两个版本浏览器
browsers:['>10%']//适配大于10%的浏览器
browsers:['firefox >30']//适配firefox大于30的版本
browsers:['since 2016']//适配2016年之后的浏览器

我们不用自己查CSS的浏览器适配, 借助postcss添加
Browser list
https://browserl.ist/
less是按这个网站的标准解释CSS的

import

npm install postcss-import
postcss.config.js

const autoprefixer = require('autoprefixer');
const atImport = require('postcss-import');

module.exports = {
	plugins: [
	    atImport,
	    autoprefixer({
	    	browsers:['last 2 versions']
	    })
	]
};

src文件夹下, 02-plugins-main.css的内容

@import "./02-plugins-module.css";

.box{
    box-shadow: 0 0 3px rgba(255,255,255, .3);
}

02-plugins-module.css的内容

*{
	padding: 0;
	margin: 0;
}

执行

./node_modules/.bin/postcss src/01-postcss.css -o build/02-plugins-module.css

build文件夹下02-plugins-module.css内解释结束后产生的内容

*{
	padding: 0;
	margin: 0;
}

.box{
    -webkit-box-shadow: 0 0 3px rgba(255,255,255, .3);
            box-shadow: 0 0 3px rgba(255,255,255, .3);
}

cssnano

postcss.config.js

const autoprefixer = require('autoprefixer');
const cssnano = require('cssnano');
const atImport = require('postcss-import');

module.exports = {
	plugins: [
	    atImport,
	    autoprefixer({
	    	browsers:['last 2 versions']
	    }),
	    cssnano
	]
};

cssnano放在最后
src/02-plugins-module.css的内容

*{
	padding: 0;
	margin: 0;
}

body{
	margin: 10px 20px 10px 20px;
	font-size: 14px;
}

body{
	background-color: #ffffff; 
}

执行

*{padding:0;margin:0}body{margin:10px 20px;font-size:14px;background-color:#fff}.box{-webkit-box-shadow:0 0 3px hsla(0,0%,100%,.3);box-shadow:0 0 3px hsla(0,0%,100%,.3)}

代码压缩成了一行
#ffffff变成#fff, 两个body变成一个body

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值