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

解决uniapp vue3版本封装组件后:deep()样式穿透不生效的问题

在 Vue 3 的CSS 中,使用:deep() 用于穿透样式作用域,也就是说可以通过deep深度穿透的方式,修改组件内的css样式。

语法推荐写法格式

:deep(.child) { color: red;
}

以上写法是修改子组件中类名为child的样式。

问题复现

使用uniapp开发微信小程序,在页面中使用了uniapp的扩展组件uni-easyinput,该组件默认是圆角矩形的框,想要修改成圆角矩形框,该组件并没有属性对自身修改这个样式,所以采用:deep()穿透深度修改css样式,如下代码示例:

<view class="search-wrap"><view class="fixed"><uni-easyinput class="input" suffixIcon="search"v-model.trim="searchVal" placeholder="请输入要搜索的产品..." @iconClick="handleSearch" @confirm="handleSearch"></uni-easyinput></view>	
</view>
.fixed{background: #BDAF8D;	width: 100%;height: 90rpx;	:deep(.is-input-border){border-radius: 50px;border-color:#BDAF8D;}
}

在这里插入图片描述
通过以上css代码的修改,是可以修改到uni-esayinput组件内的输入框的样式的。

但是输入框在多个页面内都存在,想要将该输入框区域封装成一个组件,经过测试,在H5端封装是没有问题的,但是在微信小程序中,是不起作用的,那么该怎么解决那?

解决办法

defineOptions({options: {styleIsolation: 'shared'}
})
defineOptions 定义组件选项的宏
options.styleIsolation: ‘shared’
  • 这是微信小程序特有的配置,用于控制组件的样式隔离行为。
  • styleIsolation 是小程序组件的一个选项,决定组件样式是否受外部影响或影响外部。
  • ‘shared’ 表示允许样式穿透

总结

options.styleIsolation为编译到微信小程序的组件配置样式共享(允许父子组件样式相互影响)。

http://www.lqws.cn/news/538129.html

相关文章:

  • react-嵌套路由 二级路由
  • 事件循环(Event Loop)机制对比:Node.js vs 浏览器​
  • python+requests接口自动化测试
  • 大脑感官:视觉系统中将感观信息转换为神经信号
  • @Autowired 和 @Resource 有什么区别?
  • Java常用设计模式详解
  • linux网络编程socket套接字
  • 【论文阅读】--Instruction Backdoor Attacks Against Customized LLMs
  • Neo4j2.0.1桌面端使用教程(简化版)
  • MySQL 锁的分类
  • WinAppDriver 自动化测试:C#篇
  • EMQ X Broker 配置HTTP 的外部鉴权接口
  • 生物化学 PCR(聚合酶链式反应)引物 制造(固相磷酰胺化学法) 购买 存储
  • 如何在x86_64 Linux上部署Android Cuttlefish模拟器运行环境
  • MySQL事物隔离级别详解
  • 笔记04:层叠的定义及添加
  • 链表基本功(相交链表)
  • Ubuntu通过防火墙管控Docker容器
  • Go语言与云原生:Kubernetes Operator开发全流程
  • Selenium+Pytest自动化测试框架实战
  • 第十二章:温度传感器拓展模块
  • 《汇编语言:基于X86处理器》第5章 过程(1)
  • LeetCode 2311.小于等于 K 的最长二进制子序列:贪心(先选0再选1)-好像还是比灵神写的清晰些
  • Python打卡:Day36
  • 永磁无刷电机旋转原理
  • 数据结构进阶 第六章 树与二叉树
  • 15.三数之和
  • 教程 | 一键批量下载 Dify「Markdown 转 Docx」生成的 Word 文件(附源码)
  • GraphQL注入 -- GPN CTF 2025 Real Christmas
  • Spring Boot高并发 锁的使用方法