在UnoCSS中定义1PX边框语法规则

在项目中使用UnoCSS时,实现移动端1px精细边框适配

适配规则定义:

  • 1bdr 四边框
  • 1bdr-t 上边框
  • 1bdr-b 下边框
  • 1bdr-l 左边框
  • 1bdr-r 右边框

要实现上面的规则,可以unocss中自定义规则 unocss 规则

uno.config.ts 中定义 rules

js 复制代码
import {
  type Preset,
  defineConfig,
  toEscapedSelector,
} from 'unocss'

export default defineConfig({
    ...
    rules: [
     [
      /^1bdr(-[t|b|r|l])?$/,
      ([, poi], { rawSelector }) => {
        const color = 'rgba(0, 0, 0, 0.15)'
        const positions = ['-top', '-bottom', '-right', '-left']
        const pos = positions.find((v) => v.startsWith(poi))
        const bdr = `border${pos}: 1px solid ${color};`
        // console.log(poi, bdr)

        const selector = toEscapedSelector(rawSelector)
        return `
          ${selector} {
            position: relative;
          }
          ${selector}::after {
            content: " ";
            position: absolute;
            width: 200%;
            height: 200%;
            top: 0;
            left: 0;
            ${bdr}
            transform: scale(0.5);
            transform-origin: 0 0;
            pointer-events: none;
            border-radius: inherit;
          }
        `
      },
    ],
   ]
   ...
})

使用

html 复制代码
// 可适配 border-radius
<div class="1bdr rounded-2 p-2 m-2"></div>

<div class="1bdr-b p-2 m-2"></div>
相关推荐
我只会写Bug啊2 分钟前
复制可用!纯前端基于 Geolocation API 实现经纬度获取与地图可视化
前端·高德地图·地图·百度地图·经纬度
刘一说10 分钟前
Vue3 模块语法革命:移除过滤器(Filters)的深度解析与迁移指南
前端·vue.js·js
lkbhua莱克瓦2443 分钟前
JavaScript核心语法
开发语言·前端·javascript·笔记·html·ecmascript·javaweb
Trae1ounG43 分钟前
这是什么dom
前端·javascript·vue.js
比老马还六1 小时前
Bipes项目二次开发/扩展积木功能(八)
前端·javascript
易营宝1 小时前
全球建站SaaS平台能提升SEO评分吗?是否值得切换?
大数据·前端·人工智能
513495921 小时前
在Vue.js项目中使用docx和file-saver实现Word文档导出
前端·vue.js·word
AC赳赳老秦2 小时前
Prometheus + DeepSeek:自动生成巡检脚本与告警规则配置实战
前端·javascript·爬虫·搜索引擎·prometheus·easyui·deepseek
接着奏乐接着舞。2 小时前
前端大数据渲染性能优化:Web Worker + 分片处理 + 渐进式渲染
大数据·前端·性能优化
Beginner x_u2 小时前
CSS 中的高度、滚动与溢出:从 height 到 overflow 的完整理解
前端·css·overflow·min-height