uni-app Vue3语法实现微信小程序样式穿透uview-plus框架

1 问题描述

我在用 uni-app vue3 语法开发微信小程序时,在项目中使用了 uview-plus 这一开源 UI 框架。在使用 up-text 组件时,想要给它添加一些样式,之前了解到微信小程序存在样式隔离的问题,也在uview-plus官网-注意事项中找到了相关解决方法,尝试后发现样式仍然不能失效。

html 复制代码
<template>
  <view class="container">
    <up-text text="标题"></up-text>
    <up-text text="内容" class="content"></up-text>
  </view>
</template>

<style scoped>
  .container ::v-deep .content {
    margin-top: 5px !important;
    border: 1px solid red;
  }
</style>

说明:由于不是自定义组件,所以不是配置styleIsolation参数的问题(以下不需要进行配置

js 复制代码
<script setup>
// 功能实现
</script>
// 配置自定义组件样式穿透
<script>
export default {
  options: {
    styleIsolation: 'shared'
  }
}
</script>

2 引发原因

在微信开发者工具查看页面 DOM 结构时发现,我给第二个 up-text 添加的类名 .content 没有生效。

3 解决方法

通过 up-text 内部类 .u-text 和伪类 :nth-child 结合使用定位到要添加自定义样式的元素。

html 复制代码
<style scoped>
  .container ::v-deep .u-text:nth-child(2) {
    margin-top: 5px !important; 
    border: 1px solid red;
  }
</style>
<!-- 备注:!important 用于覆盖 up-text 默认的 margin: 0 样式 -->
相关推荐
爱勇宝3 小时前
我想认真做一件小事:让孩子和家长更好地互动
微信小程序·小程序·云开发
唯火锅不可辜负5 小时前
避坑指南:iOS 下 scroll-view 嵌套 fixed 布局的“翻车”现场与修复
微信小程序
didiplus6 小时前
运维人的随身神器:我把25个常用工具塞进了微信小程序
微信小程序
一份执念1 天前
uni-app 小程序分包限制处理与主包体积优化实战
前端·微信小程序
一份执念1 天前
ECharts 安装与使用完全指南:从全量引入到小程序分包优化
微信小程序·echarts
一份执念1 天前
uni-app项目 (vue+vite + uni-UI)中引入umd格式JS文件,微信小程序中导入报错处理方案
前端·uni-app·echarts
PedroQue991 天前
V1.6.1性能优化:高频路径提速与代码精简
前端·uni-app
skiyee2 天前
🔥UniApp 仅需 5 行代码!实现所有页面中控制应用主题变化
前端·微信小程序
夏碧笔3 天前
uni-app跨端地图实战:用第三方LBS替代微信平台收费服务
uni-app
Jinkey4 天前
要用户手机号真的是为了打骚扰电话吗?浅谈微信生态会员账号体系与资产合并
后端·微信·微信小程序