vite postcss

PostCSS

  • PostCSS是一款使用JavaScript插件对CSS实现转换的工具
  • PostCSS拥有非常强大的插件,典型的比如autoprefixercssnextcss modules等。
  • PostCSS插件的处理方式类似CSS预处理器,而非预处理器和后处理器。
  • PostCSS并非优化CSS的工具,语法也并非CSS的新式语法。

Vite自身已经集成PostCSS,无需再次安装。另外也无需单独创建PostCSS配置文件,已集成到vite.config.jscss选项中。可直接配置css.postcss选项即可。Vite将自动在*.vue文件中所有的style标签以及所有导入的.css文件中应用PostCSS.

$ vim vite.config.js
import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'

import postcssImport from "postcss-import"
import autoprefixer from 'autoprefixer'
import tailwindcss from 'tailwindcss'


export default ({mode})=>{
  //生成自定义用户配置
  return defineConfig({
    //样式表插件
    css:{
      postcss:{
        plugins:[
          postcssImport,
          autoprefixer,
          tailwindcss
        ]
      }
    }
  })
}

PostCSS插件:嵌套CSS样式写法解决方案

插件 描述
postcss-import 支持@import写法
postcss-url 支持@url写法
postcss-bem 支持BEM元素规则命名
postcss-nested 支持类选择器嵌套写法,模拟SASS嵌套选择器写法。
postcss-nesting 支持符合W3C规范的嵌套类选择器写法
postcss-simple-vars 支持变量
postcss-advanced-variables 支持类似SASS自定义变量并引用,实现编写变量、条件、循环。
postcss-preset-env 支持变量运算

PostCSS插件:H5移动端屏幕适用性解决方案

插件 描述
cssnano 优化和压缩CSS,已包含autoprefixer插件。
postcss-aspect-ratio-mini 容器比匹配
postcss-cssnext 实现嵌套编程
postcss-px-to-viewport 将px转换为vw以适应各种屏幕
postcss-write-svg 1px细线的绘制

Import

PostCSS通过@import将样式表合并到一起,当需要通过@import将第三方类库导入到主样式表时,首先需要运行的是@import插件。

插件 描述
postcss-import 支持通过内联内容来转换@import规则
postcss-partial-import 让CSS文件支持@import语法,支持W3C的写法,也支持SASS写法。

postcss-import

安装插件

$ npm ls postcss-import
$ npm info postcss-import
$ npm i -D postcss-import@latest

postcss-partial-import

Autoprefixer

  • Autoprefixer是一个根据Can I Use解析CSS并为其添加浏览器厂商前缀的PostCSS插件
  • Autoprefixer会使用基于当前浏览器支持的特性和属性为CSS添加前缀

查看项目下是否已经安装过Autoprefixer

$ npm ls autoprefixer version

使用NPM为Vue项目安装Autoprefixer

$ npm info autoprefixer versions
$ npm i -D autoprefixer@latest

在PostCSS配置文件post.config.js配置文件的插件属性中添加Autoprefixer

$ vim postcss.config.js
import autoprefixer from "autoprefixer"

export default {
  plugins:[
    autoprefixer
  ]
}

TaildwindCSS

官方网站:https://www.tailwindcss.cn/docs/plugins

  • Tailwind CSS是一款实用为主效用优先的CSS框架
  • TailwindCSS作为PostCSS插件存在,将基础的CSS拆分为原子级别。
  • PostCSS提供Autoprefixer插件用于补全各种浏览器前缀,兼容性更好。

查看项目是否已经安装TailwindCSS

$ npm ls tailwindcss version

使用NPM安装TailwindCSS

$ npm info tailwindcss versions
$ npm i -D tailwindcss@latest

为PostCSS配置TailwindCSS插件

$ vim postcss.config.js
import postcssImport from "postcss-import"
import autoprefixer from "autoprefixer"
import tailwindcss from "tailwindcss"

export default {
  plugins:[
    postcssImport,
    autoprefixer,
    tailwindcss
  ]
}

配置TailwindCSS独立配置文件

$ vim tailwind.config.js
export default {
  
}

安装VSCode插件

  • Tailwind CSS IntelliSense
  • Tailwind Docs

创建全局应用的样式表,注意必须引入postcss-import插件以支持@import写法。

$ vim src/assets/css/main.css
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';

项目主入口文件中引入全局样式表

$ vim src/main.js
import "@/assets/css/main.css"

安装TailwindCSS插件

TailwindCSS提供了可复用的第三方插件用于扩展Tailwind,插件会注册新的样式,让Tailwind使用JavaScript代替CSS注入用户的样式表。

$ npm i -D @tailwindcss/forms
$ npm i -D @tailwindcss/typography
$ npm i -D tailwindcss/aspect-ratio
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,069评论 4 358
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,212评论 1 287
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 105,912评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,424评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,741评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,194评论 1 206
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,553评论 2 307
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,289评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,923评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,251评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,775评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,144评论 2 249
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,698评论 3 228
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,936评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,658评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,214评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,159评论 2 258

推荐阅读更多精彩内容

  • 在前端开发中一直有个原则,叫做"关注点分离",意思就是各种技术只负责自己的领域,不要混合在一起,形成耦合,这种原则...
    li4065阅读 2,478评论 0 0
  • 1.CSS盒模型,在不同浏览器的差异 css 标准盒子模型 css盒子模型 又称为框模型(Box Model),包...
    泪滴在琴上阅读 187评论 0 2
  • 简介:它是什么? PostCSS自身项目在github上的描述:“PostCSS is a tool for tr...
    Joazer阅读 1,429评论 0 1
  • 前言 本静态站点用于演示之用,使用 Hugo 构建,以及 Markdown 供应内容。 流行的静态站点框架有以下几...
    坚果jimbowhy阅读 1,926评论 3 0
  • PostCss笔记 跨浏览器兼容性: 后处理 autoprefixer: 自动添加前缀 指定支持的浏览器版本 Au...
    rxdxxxx阅读 2,106评论 0 0