CSS 工程化

CSS 工程化

关注几个事情:组织、优化、构建、维护

PostCSS

  • 将 CSS 解析成 CSS,和预处理器没太多区别。
  • 本身只有解析能力
  • 各种神奇的特性全靠插件
  • 目前至少有200多个插件

常见:

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

PostCSS插件的使用

全局安装 postcss-cli

npm install postcss-cli -g

postcss.config.js 文件进行配置

cssnext

precss

  • 变量(使用和 sass 几乎一样)
  • 条件(if)
  • 循环
  • Mixin Extend
  • import
  • 属性值引用

gulp-postcss

PostCSS 支持的构建工具

  • CLI命令行工具
  • webpack postcss-loader
  • Gulp gulp-postcss
  • Grunt grunt-postcss
  • Rollup rollup-postcss

webpack

  • JS是整个应用的核心入口
  • 一切资源均由JS管理依赖
  • 一切资源均由webpack打包

webpack 和 CSS

  • css-loader 将 CSS变为 JS
  • style-loader 将JS插入到head
  • ExtractTextPlugin 将 CSS 从 JS 中 提取出来
  • CSS modules 解决 CSS命名冲突的问题
  • less-loader sass-loader 各类预处理器
  • postcss-loader PostCSS处理

CSS 面试真题

如何解决CSS模块化问题

  • less sass 等CSS预处理器
  • PostCSS插件(postcss-import / precss等)
  • webpackl处理CSS(css-loader + style-loader)

PostCSS可以做什么?

  • 取决于插件做什么
  • autoprefixer cssnext precss等 兼容性处理
  • import 模块合并
  • css语法检查 兼容性检查
  • cssnano 压缩文件

CSS modules是做什么的,如何使用

  • 解决类名冲突的问题
  • 使用PostCSS或者webpack等构建工具进行编译
  • 在HTML模板中使用编译过程产生的类名

为什么使用JS来引用、加载CSS

  • JS作为入口,管理资源有天然优势
  • 将组件的结构、样式、行为封装到一起,增强内聚
  • 可以做更多处理(webpack)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值