一、【UnoCss / unibest】样式篇

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布局请求封装请求拦截登录拦截UnoCSSi18n多语言 等基础功能,提供了 代码提示自动格式化统一配置代码片段 等辅助功能,让你编写 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,那么元素 Auni-app 里面的宽度应该设为:750 * 100 / 750,结果为:100rpx

若设计稿宽度为 640px,元素 A 在设计稿上的宽度为 100px,那么元素 Auni-app 里面的宽度应该设为:750 * 100 / 640,结果为:117rpx

若设计稿宽度为 375px,元素 B 在设计稿上的宽度为 200px,那么元素 Buni-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 中的一些配置项。

同时说明了设计稿在两种编写方式下的宽度的设置,分别为 7501500.

最后说明一下,原子化CSS传统方式 两者不是互斥的,他们是互补的,合适的地方使用合适的方式。

相关推荐
余防21 小时前
XXE - 实体注入(xml外部实体注入)
xml·前端·安全·web安全·html
jump_jump21 小时前
前端部署工具 PinMe
运维·前端·开源
Baklib梅梅21 小时前
优秀文档案例解析:打造高效用户体验的最佳实践
前端·ruby on rails·前端框架·ruby
慧一居士21 小时前
VUE、jquery、React、Ant Design、element ui、bootstrap 前端框架的 功能总结,示例演示、使用场景介绍、完整对比总结
前端
GISer_Jing1 天前
0926第一个口头OC——快手主站前端
开发语言·前端·javascript
MediaTea1 天前
Jupyter Notebook:基于 Web 的交互式编程环境
前端·ide·人工智能·python·jupyter
少年阿闯~~1 天前
CSS——重排和重绘
前端
个人看法1 天前
h5实现一个吸附在键盘上的工具栏
前端·javascript·vue
知识分享小能手1 天前
微信小程序入门学习教程,从入门到精通,微信小程序页面制作(2)
前端·javascript·学习·微信小程序·小程序·前端框架·notepad++
jason_yang1 天前
JavaScript 风格指南 精选版
前端·javascript·代码规范