组织 优化 构建 维护
PostCSS
PostCSS介绍:
- PostCSS本身只有解析能力
- 各种神奇的特性全靠插件
- 目前至少有200多个插件
PostCSS插件:
- import模块合并
- autoprefixier自动加前缀
- cssnano压缩代码
- cssnext使用css新特性
- precss变量、mixin、循环
postcss.config.js引入插件的配置文件
autoprefixer
cssnext插件
precss插件
- 变量
- 条件(if)
- 循环
- Mixin Extend
- import
- 属性值引用
postCss支持的构建工具
- cli命令行工具
- webpack postcss-loader
- Gulp gulp-postcss
- Grunt grunt-postcss
- Rollup rollup-postcss
webpack
使用过程:
- css-loader将css变成js
- style-loader 将js样式插入head
- ExtractTextPlugin将css从js中提取出来
- css-modules解决css命名冲突问题
- less-loader sass-loader各类预处理器
- postcss-loader PostCSS处理
- js是整个应用的核心入口
- 一切资源均由js管理依赖
- 一切资源均由webpack打包
- css-loader style-loader将css处理成webpack可处理文件
配置文件:
css-modules
css-modules 修改所有class名 防止样式冲突 产生了css样式封装的效果
extract-text-plugin插件
把css从js提取掉 、产生css文件需要pluginin
extract-text-plugin插件配置:
css面试题:
1.如何解决css模块化问题
- less sass等css预处理器
- postcss插件(post-import/precss等)
- webpack处理css(css-loader+style-loader)
2.postcss可以做什么
- 取决于插件能做什么
- autoprefixer cssnext precss等 兼容性处理
- import模块合并
- css语法检查 兼容性检查
- 压缩文件
3.css-modules是做什么的,如何使用
- 解决类名冲突的问题
- 使用postcss或者webpack等构建工具进行编译
- 在html模块中使用便宜过程产生的类名
4.为什么使用js来引用、加载css
- js作为入口、管理资源是有天然优势的
- 将组件的结构、样式、行为封装到一起、增强内聚
-
可以做更多的处理(webpack)