vue3 【提效】使用 CSS 框架 UnoCSS 实用教程

简介: vue3 【提效】使用 CSS 框架 UnoCSS 实用教程

该换种更高效的方式写 CSS 啦,举个例:

<div class="flex">
</div>


相当于

<div class="flex">
</div>
<style>
.flex {
  display: flex;
}
</style>

当然,还有超多强大的功能帮我们提升书写样式的效率,即刻开始吧!

使用流程

1. 安装 UnoCSS

npm i -D unocss

2. 添加到 vite 配置中

vite.config.ts

import UnoCSS from 'unocss/vite'

plugins 中添加

UnoCSS(),

3. main.ts 中导入

import 'virtual:uno.css'

4. 创建配置文件

项目目录下新建文件 uno.config.ts,内容为

import { defineConfig } from 'unocss'

export default defineConfig({
  // UnoCSS 的配置
})

后续使用 unocss 比较高级的功能时会用到。

5. vscode 安装 UnoCSS 扩展

  • 方便 UnoCSS 的快捷输入
  • 可以便捷查看最终样式

UnoCSS 功能详解

原子化 CSS

即本文开头演示的,用简单且功能单一的 class 来描述样式。

比如:让文字变成红色,并添加 10px 的外边距

<div class="text-red m-2.5">外边距为10px, 内部文字为红色</div>

vscode 安装了 UnoCSS 扩展后,鼠标悬浮到 class 上,可见 UnoCSS 的最终样式效果。

在 class 中输入空格,会触发输入提示

通过官网可查询样式写法

https://unocss.dev/interactive/


自定义 CSS

官方的样式写法使用不习惯? 可以自己定义!

uno.config.ts 中添加 rules 即可

import { defineConfig } from 'unocss'

export default defineConfig({
  rules: [
    ['p-10', { padding: '10px' }],
    ['m-10', { margin: '10px' }]
  ]
})

但这样一个个定义太麻烦,快来使用正则表达式批量定义

rules: [[/^p-(\d+)$/, (match) => ({ padding: `${match[1]}px` })]]

从此,p- 后的数字是多少,就是多少 px 的内边距,如

快捷 CSS

比如一个绿色按钮的样式,需要多处使用,可以将其定义为 快捷 CSS

uno.config.ts 中添加 shortcuts 实现:

  shortcuts: {
    'btn-green': 'text-white bg-green-500 hover:bg-green-700'
  },

页面中使用

<button class="btn-green">保存</button>

效果如下

同样支持正则的写法实现批量定义,如

shortcuts: [
  // you could still have object style
  {
    btn: 'py-2 px-4 font-semibold rounded-lg shadow-md',
  },
  // dynamic shortcuts
  [/^btn-(.*)$/, ([, c]) => `bg-${c}-400 text-${c}-100 py-2 px-4 rounded-lg`],
]

使用

  <div class="p-20 flex w-xs justify-around">
    <button class="btn-green">保存</button>
    <button class="btn-red">删除</button>
  </div>

效果

在 CSS 中使用 UnoCSS

需先修改配置文件 uno.config.ts (改动部分,见下方代码中的注释)

import { defineConfig } from 'unocss'
// 导入 transformerDirectives
import { transformerDirectives } from 'unocss'

export default defineConfig({
  // 使用 transformerDirectives
  transformers: [transformerDirectives()]
})

使用方法: 在 --at-apply 中写 UnoCSS 即可。

.box {
  --at-apply: p-20 flex justify-around;
  background-color: green;
}

更多用法详见官网

https://unocss.dev/guide/

目录
相关文章
|
9天前
|
前端开发 JavaScript
vue3【实战】创建项目、创建并提交代码到远程仓库,安装 SASS, 清除浏览器默认样式 reset-css, 清除模板代码,提升开发效率的必要集成
vue3【实战】创建项目、创建并提交代码到远程仓库,安装 SASS, 清除浏览器默认样式 reset-css, 清除模板代码,提升开发效率的必要集成
15 0
|
13天前
|
前端开发 JavaScript
【Vue3+TypeScript】CRM系统项目搭建之 — CSS样式方案
【Vue3+TypeScript】CRM系统项目搭建之 — CSS样式方案
10 0
|
13天前
|
前端开发 UED
前端 CSS 经典:在 Vue3 中使用渐进式图片
前端 CSS 经典:在 Vue3 中使用渐进式图片
17 0
|
14天前
|
JavaScript 内存技术
Vue动画——使用最新版Animate.css教程
Vue动画——使用最新版Animate.css教程
7 0
|
2月前
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS实践篇】CSS框架(Bootstrap/Foundation)快速上手
【4月更文挑战第30天】Bootstrap和Foundation是两种流行的CSS框架,用于构建响应式网页。它们包含预定义的样式、栅格系统和组件,加速开发流程。Bootstrap以其12列栅格系统闻名,而Foundation提供更定制化和模块化选项。了解并熟练运用这些框架的基本概念和组件,结合最佳实践和性能优化,能帮助开发者高效创建符合现代设计趋势的网页项目。
|
2月前
|
存储 前端开发 JavaScript
《CSS 简易速速上手小册》第7章:CSS 预处理器与框架(2024 最新版)
《CSS 简易速速上手小册》第7章:CSS 预处理器与框架(2024 最新版)
47 2
|
2月前
|
前端开发
css教程-li的list-style-type属性
通过设置 `list-style-type`属性,你可以根据需求为列表项设置不同的标志样式,从而改变列表的外观。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
22 4
|
2月前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(十九)-java+ selenium自动化测试-元素定位大法之By css下卷(详细教程)
【4月更文挑战第11天】按计划今天宏哥继续讲解css的定位元素的方法。但是今天最后一种宏哥介绍给大家,了解就可以了,因为实际中很少用。
66 2
|
2月前
|
前端开发 JavaScript 搜索推荐
CSS框架是前端开发中不可或缺的工具
【4月更文挑战第12天】CSS框架是前端开发中不可或缺的工具
26 2
|
2月前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(十七)-java+ selenium自动化测试-元素定位大法之By css上卷(详细教程)
【4月更文挑战第9天】本文介绍了CSS定位方式的使用,包括它的优势和8种常用的定位方法。CSS定位相比XPath定位更快、更稳定。文章通过示例详细讲解了如何使用CSS定位元素,包括通过id、name、class name、tag name、link text、partial link text以及XPath进行定位。还提供了Java代码示例来演示如何在自动化测试中使用这些定位方法。
89 1