PostCSS 的介绍和使用

介绍

在写 CSS 时,我们可能会用到 Less、Sass 等预处理,但是这些预处理无法解决下面的问题:

  1. 兼容低版本浏览器,对未来的 css 属性进行降级;
  2. 前缀补全,例如添加 --webkit;

这些问题,可以使用 PostCSS 进行处理。类似于 babel,PostCSS 用来保证 CSS 的执行万无一失。

babel 的工作流程:

  1. 将最新的 ts 语法转化成 js 语法
  2. 做一次语法降级

然后再在浏览器中进行执行。

PostCSS 是一个用于处理 CSS 的工具,它采用插件体系,允许开发者通过使用插件来转换、优化和处理 CSS 代码。与传统的预处理器(如 Sass 和 Less)不同,PostCSS 并不是一种新的 CSS 语言,而是通过插件系统扩展了现有的 CSS 语法。

PostCSS 的主要优势之一是灵活性。开发者可以根据项目的需要,选择并配置不同的插件。这使得 PostCSS 成为一个强大的工具,适用于各种不同的项目和需求。

常见的 PostCSS 插件功能有:

  1. 自动添加浏览器前缀: 使得样式在不同浏览器中具有一致的表现。
  2. CSS 变量处理: 允许使用 CSS 变量,并在构建过程中将其转换为实际的值。
  3. 压缩和优化: 移除不必要的空格、注释等,以减小文件大小并提高加载性能。
  4. 使用未来的 CSS 语法: 允许开发者在项目中使用尚未被所有浏览器支持的 CSS 语法,通过插件将其转换为当前浏览器能够理解的语法。

postcss-cli 是一个用于运行 PostCSS 的命令行工具。postcss-cli 提供了一种通过命令行界面来使用 PostCSS 的简便方法。使用 postcss-cli,你可以在命令行中运行 PostCSS,并通过指定配置文件或直接传递选项来配置不同的插件和功能。这使得开发者可以轻松地集成 PostCSS 到他们的构建过程中,从而在构建过程中自动化 CSS 处理。

PostCSS 的工作流程通常涉及以下步骤:

  1. 安装 PostCSS 及相关插件: 通过 npm 或 yarn 安装 PostCSS 以及需要的插件。
  2. 配置 PostCSS:创建一个配置文件(通常是 postcss.config.js)来指定使用的插件和其配置。
  3. 运行 PostCSS:使用命令行工具(如 postcss-cli)或集成到构建工具中,运行 PostCSS 来处理 CSS 文件。
  4. 输出处理后的 CSS: 处理后的 CSS 文件可以用于生产环境中。

总的来说,PostCSS 提供了一种现代化、模块化的方式来处理和增强 CSS,为开发者提供了更大的灵活性和控制权。

使用

安装 postcss-cli 和 postcss:

yarn add postcss-cli postcss -D

在 index.css 文件中添加下面的内容,使用 CSS 未来语法中的变量:

:root {
  --globalColor: lightblue;
}

div {
  background-color: var(--globalColor);
}

使用 postcss 对 index.css 进行编译,命令参数:-o表示(output)输出。

npx postcss index.css -o result.css

输出的 result.css 文件内容:

:root {
  --globalColor: lightblue;
}

div {
  background-color: var(--globalColor);
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJyZXN1bHQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOnJvb3Qge1xyXG4gICAgLS1nbG9iYWxDb2xvcjogbGlnaHRibHVlO1xyXG59XHJcblxyXG5kaXYge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2xvYmFsQ29sb3IpO1xyXG59Il19 */

此时发现并没有对语法降级。

配置并使用插件

postcss-preset-env为预设环境,他可以帮我们把必要的插件都安装上了,其中包含了:

  • postcss-low-level:语法降级
  • postcss-compiler: 编译插件
  • Autoprefixer: 自动补全

安装 postcss 的插件:postcss-preset-env

yarn add postcss-preset-env -D

PostCSS 的默认配置文件名为:postcss.config.js。创建配置文件 postcss.config.js,并使用 postcss-preset-env插件:

const postcssPresetEnv = require('postcss-preset-env');

module.exports = {\
  plugins: [postcssPresetEnv()]
}

再次运行 npx postcss index.css -o result.css对 index.css 文件进行处理,此时 result.css 中的文件内容为:

:root {
  --globalColor: lightblue;
}

div {
  background-color: lightblue;
  background-color: var(--globalColor);
}

可以发现,已经对语法进行降级了。

另外:PostCSS 中包含 Less 和 Sass 的插件,可以之间使用对应的插件完成 Less 和 Sass 的功能。不过这里两个插件已经不维护了。PostCSS 现在的流程为:先让 Less 和 Sass 处理,然后把处理结果交给 PostCSS 进行处理。所以业内就产生了一个说法:PostCSS 是后处理器,Less 和 Sass 是前处理器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. requests的基本使用: - 安装使用pip命令安装requests库:`pip install requests` - 导入:在Python代码中导入requests库:`import requests` - 发送HTTP请求:使用requests库发送HTTP请求,例如发送GET请求:`response = requests.get(url)`,发送POST请求:`response = requests.post(url, data=params)` - 处理响应:可以通过response对象获取响应状态码、头部信息、内容等:`status_code = response.status_code`,`headers = response.headers`,`content = response.content` - 其他功能:requests还提供了处理Cookie、设置请求头、发送文件、处理重定向、处理代理等功能,可以根据具体需求使用。 2. Requests的使用案例: - 网页爬取:使用requests库获取网页内容,例如爬取新闻标题、图片等。 - API请求:使用requests库发送API请求,获取数据并进行处理。 - 文件下载:使用requests库下载文件,例如下载图片、视频等。 - 表单提交:使用requests库模拟表单提交,例如登录、注册等操作。 3. Scrapy的基本使用: - 安装使用pip命令安装Scrapy框架:`pip install scrapy` - 创建项目:使用命令行工具创建Scrapy项目:`scrapy startproject project_name` - 定义Spider:在项目中定义Spider,编写抓取和解析规则,指定起始URL等。 - 编写Item和Pipeline:定义Item类来存储抓取的数据,编写Pipeline类来处理Item数据。 - 运行爬虫:使用命令行工具运行爬虫:`scrapy crawl spider_name` - 处理数据:Scrapy提供了处理数据的机制,可以使用XPath或CSS选择器来提取和处理抓取的数据。 4. Scrapy的使用案例: - 网页爬虫:使用Scrapy框架抓取网站的数据,例如爬取商品信息、新闻内容等。 - 数据抓取与存储:使用Scrapy框架抓取数据并存储到数据库或文件中,例如抓取电影信息、音乐评论等。 - 动态网页爬取:Scrapy配合Selenium或Splash等工具,可以抓取动态网页中的数据,例如抓取JavaScript渲染的页面。 - 分布式爬虫:使用Scrapy框架搭建分布式爬虫系统,提高爬取效率和稳定性。 Requests是一个用于发送HTTP请求的库,适合快速简单的网络请求和数据获取。而Scrapy是一个功能强大的Python网络爬虫框架,适合构建复杂的、高效的和可扩展的网络爬虫。根据具体需求和项目复杂度,可以选择合适的工具来完成任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值