当前位置: 首页 > 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为编译到微信小程序的组件配置样式共享(允许父子组件样式相互影响)。

相关文章:

  • ISP Pipeline(6): Color Filter Array Interpolation 色彩滤波阵列
  • 创客匠人解析视频号公私域互通逻辑:知识变现的破圈与沉淀之道
  • Pycharm无法运行Vue项目的解决办法
  • Qt实现tcp通信(QTcpServer和QTcpSocket的应用)详细教程
  • 智能客服三大模型解析:扩展问数量如何因架构差异撬动90%匹配率?
  • CentOS下Nginx服务器搭建全攻略
  • kotlin中::class.java的意义
  • 简单使用python
  • 【零基础学AI】第5讲:Pandas数据处理
  • CSMA/CD相关习题---谢希仁课后题
  • 【redis使用场景——缓存——数据过期策略 】
  • 国外开源客服系统chathoot部署,使用教程
  • Python实例题:基于 Flask 的博客系统
  • 人工智能编程三大核心流程详解--机器学习、神经网络、NLP自然语言处理
  • K8s: Kubernetes
  • 权威认证!华宇TAS应用中间件荣获CCRC“中间件产品安全认证”
  • Beam2.61.0版本消费kafka重复问题排查
  • SQL SERVER存储过程
  • SQL重置自增
  • Solidity学习 - 认识Solidity合约结构