坑爹
w-10 = width:10rpx
h-10 = height:10rpx
p-10 = padding:80rpx
这不坑爹么
需要手动修改规则
代码附上
// unocss.config.js
import presetWeapp from "unocss-preset-weapp";
import {
transformerClass,
transformerAttributify,
} from "unocss-preset-weapp/transformer";
import { defineConfig, presetAttributify } from "unocss";
const directionMap = {
t: "top",
b: "bottom",
r: "right",
l: "left",
x: ["left", "right"], // 水平方向
y: ["top", "bottom"], // 垂直方向
};
export default {
presets: [
presetAttributify(),
presetWeapp({
whRpx: true, // 启用 rpx 单位(默认 true)
platform: "uniapp", // 或 'uniapp'
designWidth: 750,
}),
],
transformers: [transformerAttributify(), transformerClass()],
shortcuts: [],
rules: [
// 基础间距
[/^m-(\d+)$/, ([, d]) => ({ margin: `${d}rpx` })],
[/^p-(\d+)$/, ([, d]) => ({ padding: `${d}rpx` })],
// 方向性间距(修正版)
[
/^m([tbrlxy])-(\d+)$/,
([, dir, d]) => {
const directions = Array.isArray(directionMap[dir])
? directionMap[dir]
: [directionMap[dir]];
return Object.fromEntries(
directions.map((k) => [`margin-${k}`, `${d}rpx`])
);
},
],
[
/^p([tbrlxy])-(\d+)$/,
([, dir, d]) => {
const directions = Array.isArray(directionMap[dir])
? directionMap[dir]
: [directionMap[dir]];
return Object.fromEntries(
directions.map((k) => [`padding-${k}`, `${d}rpx`])
);
},
],
// 负值支持
[
/^-m([tbrlxy])?-(\d+)$/,
([, dir, d]) => {
if (!dir) return { margin: `-${d}rpx` };
const directions = Array.isArray(directionMap[dir])
? directionMap[dir]
: [directionMap[dir]];
return Object.fromEntries(
directions.map((k) => [`margin-${k}`, `-${d}rpx`])
);
},
],
[
"center",
{
position: "absolute",
top: "50%",
left: "50%",
transform: `translate(-50%, -50%)`,
},
],
[
"shadow1",
{
"box-shadow": "0px 0px 12px rgba(0, 0, 0, .12)",
},
],
[
/^border-#([0-9a-fA-F]+)$/,
([_, color]) => ({
border: `1px solid #${color}`,
}),
],
[
"trans",
{
transition: ".3s",
},
],
],
};

被折叠的 条评论
为什么被折叠?



