1、废话介绍
UnoCSS 是由 Windi CSS 的一名团队成员发起的,从我们在 Windi CSS 中所做的工作中汲取了很多灵感。虽然 Windi CSS 不再被积极维护(截至 2023 年 3 月),但你可以将 UnoCSS 视为 Windi CSS 的 "精神继承者"。 UnoCSS 继承了 Windi CSS 的按需特性,属性化模式、快捷方式、变体组、编译模式 等等。最重要的是,UnoCSS 是从头开始构建的,考虑到了最大的可扩展性和性能,使我们能够引入 纯 CSS 图标、无值的属性化、标签化、网络字体 等新功能。
unibest
是最好的 uniapp
开发框架,由 uniapp
+ Vue3
+ Ts
+ Vite5
+ UnoCss
+ VSCode
(可选 webstorm
) + uni插件
+ wot-ui
(可选其他 UI 库)构建,集成了多种工具和技术,使用了最新的前端技术栈,无需依靠 HBuilderX
,通过命令行方式即可运行 web
、小程序
和 App
。(注:App
还是需要 HBuilderX
)
unibest
内置了 约定式路由
、layout布局
、请求封装
、请求拦截
、登录拦截
、UnoCSS
、i18n多语言
等基础功能,提供了 代码提示
、自动格式化
、统一配置
、代码片段
等辅助功能,让你编写 uniapp
拥有 best
体验 ( unibest 的由来
)。
unibest
目前支持H5
、小程序
和App
。
2、UnoCSS / unibest
本篇主要介绍 UnoCSS
的使用,以及如何与 设计稿尺寸
对应。 UnoCSS 是按需使用的原子 CSS 引擎,提供了良好的样式支持。
3、安装插件
请安装 VSCode
插件 antfu.unocss

安装完成后在 VSCode 中还可以预览,


如果不记得原子类,可以查 UnoCSS 的原子类
,UnoCSS Interactive
也可以查看 tailwindcss
的原子类,更加清晰明了,链接 - tailwindcss
4、设计稿尺寸
不同的编写方式,需要设置不同的设计稿尺寸,请看下文:
4.1、传统编写方式
如果有设计稿,通常使用传统的编写 CSS
的方式,里面的对应尺寸规律如下。以蓝湖为例,假如设计稿宽度为 750px
,则直接复制样式代码到 css 代码,同时把 px
批量替换为 rpx
即可。
如果设计稿不是 750px
可以调整蓝湖的设置,让设计稿宽度为 750px
。
下面为一段辅助说明文案,从
uniapp
官网搬运而来。
rpx
是相对于基准宽度的单位,可以根据屏幕宽度进行自适应。uni-app
规定屏幕基准宽度 750rpx
。
开发者可以通过设计稿基准宽度计算页面元素 rpx
值,设计稿 1px
与框架样式 1rpx
转换公式如下:
设计稿 1px / 设计稿基准宽度 = 框架样式 1rpx / 750rpx
换言之,页面元素宽度在 uni-app
中的宽度计算公式:
750 * 元素在设计稿中的宽度 / 设计稿基准宽度
举例说明:
若设计稿宽度为 750px
,元素 A
在设计稿上的宽度为 100px
,那么元素 A
在 uni-app
里面的宽度应该设为:750 * 100 / 750
,结果为:100rpx
。
若设计稿宽度为 640px
,元素 A
在设计稿上的宽度为 100px
,那么元素 A
在 uni-app
里面的宽度应该设为:750 * 100 / 640
,结果为:117rpx
。
若设计稿宽度为 375px
,元素 B
在设计稿上的宽度为 200px
,那么元素 B
在 uni-app
里面的宽度应该设为:750 * 200 / 375
,结果为:400rpx
。
4.2、UnoCSS 编写方式
经过上一节的 unocss.config.ts
配置,可以得到下面的组合:
mp 里面:mt-4 => margin-top: 32rpx == 16px
h5 里面:mt-4 => margin-top: 1rem == 16px
我们还是把设计稿设置为 750
,设计稿上多少 px
的元素,写成多少 rpx
即可。
元素 A
在设计稿上的宽度为 100px
,则写 w-100rpx
即可。
就是把 传统编写方式
中写在 css
中的样式搬到了 UnoCSS
中。
如果要想用 w-100
这种方式,需要做额外的处理():
5、使用指南
写法可以参考 tailwindcss
太忙了,有空再写吧。
总结
本文主要介绍了 UnoCSS
的使用,以及 unocss.config.ts
中的一些配置项。
同时说明了设计稿在两种编写方式下的宽度的设置,分别为 750
和 1500
.
最后说明一下,原子化CSS
和 传统方式
两者不是互斥的,他们是互补的,合适的地方使用合适的方式。