当前位置: 首页 > article >正文

微信小程序引入unocss

今天刚新建一个微信小程序,之前写过一篇《原子化CSS:Unocss的使用》,想着“偷懒”不想定义各种css样式类,于是准备把unocss引入进来使用。

安装与配置

1.安装依赖

npm add -D unocss unocss-preset-weapp

2.配置unocss.config.ts

import { defineConfig } from "unocss";
import presetWeapp from 'unocss-preset-weapp'
const include = [/\.wxml$/]

export default defineConfig({
  content:{
    pipeline:{
      include
    }
  },
  presets: [
    presetWeapp(),
  ],
  // 自定义规则
  rules: [],
  separators:'__'
})

3.在 package.json 中添加脚本命令,用于监听 wxml 文件并生成 wxss 文件:

  "scripts": {
    "unocss": "unocss pages/**/*.wxml -c unocss.config.js --watch -o unocss.wxss"
  }

4.插入app.wxss中:

@import '/unocss.wxss';

5.自定义组件中如果需要的话还得再配置一下,否则写了也不生效:


Component({
  options: {
    addGlobalClass: true
  },
})

6.启动监听:

npm run unocss

可能遇到的问题

1.单位换算不统一:

使用过程中会发现,对于width/height和padding/magin的单位换算是不一样的,比如:w-400和p-40:
在这里插入图片描述

关于这个问题,在github上的issues中也有人提到了:

① https://github.com/MellowCo/unocss-preset-weapp/issues/123

②https://github.com/MellowCo/unocss-preset-weapp/issues/116

当然在unocss-preset-weapp文档中也简略的说了如何解决这个问题:

在这里插入图片描述

因此只要在unocss.config.ts中定义rules进行覆盖就可以了,最终unocss.config.ts配置:

import { defineConfig } from "unocss";
import presetWeapp from 'unocss-preset-weapp'
const include = [/\.wxml$/]

export default defineConfig({
  content:{
    pipeline:{
      include
    }
  },
  presets: [
    presetWeapp(),
  ],
  rules: [
    [/^p-(\d+)$/, ([, d]) => ({ padding: `${d}rpx` })],
    [/^pt-(\d+)$/, ([, d]) => ({ 'padding-top': `${d}rpx` })],
    [/^pb-(\d+)$/, ([, d]) => ({ 'padding-bottom': `${d}rpx` })],
    [/^pl-(\d+)$/, ([, d]) => ({ 'padding-left': `${d}rpx` })],
    [/^pr-(\d+)$/, ([, d]) => ({ 'padding-right': `${d}rpx` })],
    [/^m-(\d+)$/, ([, d]) => ({ margin: `${d}rpx` })],
    [/^mt-(\d+)$/, ([, d]) => ({ 'margin-top': `${d}rpx` })],
    [/^mb-(\d+)$/, ([, d]) => ({ 'margin-bottom': `${d}rpx` })],
    [/^ml-(\d+)$/, ([, d]) => ({ 'margin-left': `${d}rpx` })],
    [/^mr-(\d+)$/, ([, d]) => ({ 'margin-right': `${d}rpx` })] 
  ],
  separators:'__'
})

效果预览:

在这里插入图片描述


http://www.kler.cn/a/287054.html

相关文章:

  • 回溯——4.分割回文串
  • 【C++11及其特性】智能指针——auto_ptr
  • Java Operator SDK
  • YarnClient发送和接收请求源码解析
  • 深度学习复盘与论文复现G 项目维护
  • NTFS硬盘支持工具Paragon NTFS for Mac 15.4.44 中文破解版
  • 2024.9.1 Python,跳跃游戏,贪心算法,回溯算法复原 IP 地址,关于回溯过程中列表的[:]以及copy问题再讨论
  • Flowable之传阅功能实现
  • 今日算法:蓝桥杯基础题之“星期一”
  • easyExcel 单元格合并
  • C++开发基础之宏定义:入门、中级、高级用法示例解析
  • 计算机毕业设计选题推荐-体育馆场地预约系统-Java/Python项目实战
  • OpenHarmony开发:应用分层架构设计
  • 汽车免拆诊断案例 | 2012 款大众速腾车发动机偶尔抖动
  • 【Python机器学习】NLP词中的数学——齐普夫定律
  • vue点击事件
  • Mac怎么安装谷歌浏览器
  • 算法-汇总区间(228)
  • FFmpeg源码:append_packet_chunked、av_get_packet函数分析
  • Android自定义View实现彩虹进度条(带动画)