微信小程序引入unocss

news2024/11/26 0:29:43

今天刚新建一个微信小程序,之前写过一篇《原子化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.coloradmin.cn/o/2086501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

必看!查快递接口怎么选?

历经十四年的技术沉淀与迭代,百递云API开放平台目前提供四种高效、稳定同时各具特点的快递信息查询API服务,以满足广大B端客户在不同业务场景下的物流信息查询需求。 对于新客户来说,可能会感到困惑,日常销售和运营团队也会遇到客…

数字化转型升级探索(二)

在数字化转型升级的探索中,我们计划通过整合前沿技术如人工智能、物联网和大数据,全面改造传统业务流程,打造智能化、数据驱动的业务架构,实现从数据采集、处理到分析的全链条数字化,以提升决策效率、优化运营管理&…

echarts组件——折线统计图

echarts组件——折线统计图 折线图&折线渐变图 组件代码 <template><div :class"classname" :style"{height:height,width:width}" /> </template><script> // 折线图&折线渐变图 import * as echarts from echarts re…

2024最全网络安全工程师面试题(附答案),金九银十找工作必看!

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s…

版本控制工具git

版本控制工具 git 数据库 > 有代码历史版本 > 仓库 每个文件都是不同的历史版本&#xff0c;以便恢复 集中式版本控制系统 例如&#xff1a;SVN 缺陷&#xff1a; 1.依赖于中心服务器 分布式的版本管理系统 只有程序员用 git 只有需要在同步代码的时候需要联网 程…

Python运行时环境

1.1概念 程序运行只有栈帧不够&#xff0c;还要有进程与线程 Python在初始化时会创建一个主线程&#xff0c;所以其运行时环境中存在一个主线程&#xff0c;可以有多个线程 Python实现了对多线程的支持&#xff0c;而且一个线程就是操作系统上的一个原生线程 Python中所有线…

#Datawhale X 李宏毅苹果书 AI夏令营#1.2了解线性模型

1.2线性模型 什么是线性模型&#xff1f; 初始模型&#xff1a;, 其中y表示观看人数&#xff0c;x1表示前一天的观看人数&#xff0c;这个模型就是在用前一天的观看人数来预测当前的观看人数。 模型改进&#xff1a; 然而真实的数据是有周期性的&#xff0c;每隔7天&#…

向量数据库Milvus源码开发贡献实践

Milvus 是一款云原生的开源向量数据库&#xff0c;广泛应用于高维向量数据的管理和人工智能驱动的相似性搜索。无论是在构建智能搜索引擎还是开发数据驱动的应用&#xff0c;Milvus 都能提供强大的支持。我们将一起从头开始实践 Milvus 的标准开发流程&#xff0c;包括如何搭建…

企业画册在线版是怎么制作的?

随着互联网技术的飞速发展&#xff0c;传统的纸质企业画册已经逐渐无法满足现代企业的需求。为了让画册更加环保、便捷&#xff0c;同时提升企业形象和品牌影响力&#xff0c;企业画册在线版应运而生。那么&#xff0c;企业画册在线版究竟是如何制作出来的呢&#xff1f;今天&a…

嵌入式学习(数据库)

数据库的定义&#xff1a; 可以理解为数据库是用来存放数据的一个容器。有了数据库后&#xff0c;我们可以直接查找数据。或者可以对数据库进行读写删除等操作。 Sqlite 小型数据库 . Sqlite特点: 可以实现大数据量的管理 读写速度慢 最常见的数据库类型是关系型数据库管理…

QLU-AI助手初次微调Qwen2-7B-Instruct总结

一、微调代码 from datasets import Dataset import pandas as pd from transformers import (AutoTokenizer,AutoModelForCausalLM,DataCollatorForSeq2Seq,TrainingArguments,Trainer,GenerationConfig) import torch from peft import LoraConfig, TaskType, get_peft_mode…

探索待办事项管理新世界:10款工具带你告别杂乱无章

国内外主流的10款免费待办事项app对比&#xff1a;1.PingCode&#xff1b;2.Worktile&#xff1b;3.Todoist&#xff1b;4.Trello&#xff1b;5.Habitica&#xff1b;6.Forest&#xff1b;7.Teambition&#xff1b;8.Asana&#xff1b;9.嘀嗒清单&#xff08;TickTick&#xff…

poe供电原理以及应用

1,根据IEEE802.3af标准,一个完整的PoE系统包括供电端设备PSE和受电端设备PD两部分; 供电设备PSE是整个系统的电源提供者,为PD设备提供直流电源,其可分为M

[动态规划]---背包问题

前言 作者&#xff1a;小蜗牛向前冲 专栏&#xff1a;小蜗牛算法之路 专栏介绍&#xff1a;"蜗牛之道&#xff0c;攀登大厂高峰&#xff0c;让我们携手学习算法。在这个专栏中&#xff0c;将涵盖动态规划、贪心算法、回溯等高阶技巧&#xff0c;不定期为你奉上基础数据结构…

如何让ChatGPT说话更像人类

ChatGPT在多个领域展现了卓越的能力&#xff0c;但对话中仍不可避免地带有一定的机械感。幸运的是&#xff0c;OpenAI推出的GPTs功能可以让用户自定义prompt。最近&#xff0c;我发现了其中一个GPTs&#xff0c;它能让ChatGPT的对话更加贴近真人&#xff0c;现在就来与大家分享…

【生日视频制作】农村文化墙广告标语AE模板修改文字软件生成器教程特效素材【AE模板】

生日视频制作教程农村文化墙广告标语AE模板修改文字软件生成器 怎么如何做的【生日视频制作】农村文化墙广告标语AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤&#xff1a; 安装AE软件 下载AE模板 把AE模板导入AE软件 修改图片或文字 渲染出视频

复杂网络|节点重要性评价指标

author: xiao黄 time: 2024-08-28 公众号: 复杂网络与网络科学 CSDN: https://blog.csdn.net/Python_Matlab评价节点重要性算法的指标有多种&#xff0c;如基于信息传播方面的动力学模型、单调性、Distinct Metric以及基于网络脆弱性和鲁棒性的方法等。不同的评价指标所考虑的角…

Java Web_00001

目录 Web项目介绍网页的组成部分 HTMLHTML简介HTML示例HTML文件的书写规范HTML标签标签介绍标签的语法&#xff1a;常用标签font特殊字符标题标签超链接列表标签img标签表格标签跨行跨列表格iframe框架标签(内嵌窗口)表单标签表单的显示表单格式化表单提交细节 其他标签 CSSCSS…

羟基“消失术”,化学合成中的巧妙方法

羟基(-OH)是一个很常见的官能团&#xff0c;在有机合成的转化过程中往往起到桥梁作用。在化合物合成过程中由于合成选择的原因通常会先引入一些基团&#xff0c;以降低合成化合物的难度以及提高其产率。而羟基的引入或者生成是比较常见的。羟基化方法有很多&#xff0c;其中包括…

JDBC和Mybatis中的批处理

src目录下创建jdbc.properties mysql驱动5.1.6之后,只需要配置url,username,password mysql 5.1.6之后可以无需Class.forName("com.mysql.jdbc.Driver") * 从jdk1.5之后可以通过配置文件来配置 * 会自动加载mysql驱动jar包下META-INF/services/java.sql.Driver文本中…