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

uniapp(微信小程序)>关于父子组件的样式传递问题(自定义组件样式穿透)

由于"微信小程序"存在【样式隔离机制】,且默认设置为isolated(启用样式隔离),因此这里给出以下两种解决方案:

注意: 这2种方案父子组件<style>标签不能添加"scoped"

1.CSS变量穿透(推荐: 此方案不受样式隔离限制,适配所有端)

缺点:所需的CSS属性要逐个设置变量,自定义组件逐个接收
 <!-- 父组件 Parent.vue -->
<template><Child class="parent-style"></Child>
</template><style>
.parent-style {/* 定义 CSS 变量 */--img-width: 262rpx;--img-height: 120rpx;--img-border-radius: 16rpx 16rpx 0 0;
}
</style>  
<!-- 子组件 Child.vue -->
<template><view class="child-box"><image class="child-img" /></view>
</template> <style>
.child-img {width: var(--img-width);height: var(--img-height);border-radius: var(--img-border-radius);
}
</style>

2.配置隔离模式(不太推荐)

styleIsolation是‌"微信小程序‌"特有的样式隔离配置项,具体有哪些属性值在最下方图中。
在测试中,可能是–组件层级–的缘故,只有配置了"shared"、"page-shared"样式才生效。

缺点:

1.易造成样式污染,即父子组件若存在同类名会相互干扰样式,其他设置了"shared"的组件可能也会受到污染
2.子组件元素层级要定位明确(要更改样式的元素),否则整个自定义组件样式都要受到父组件的影响

2.1 选项式api:
 <!-- 父组件 Parent.vue -->
export default {options:{styleIsolation: 'shared',},data() {return {}}
}
2.2 组合式api:
 <!-- 父组件 Parent.vue -->
<script setup>
import { defineOptions } from 'vue';
defineOptions({options: {styleIsolation: 'shared' }
});
</script>
<!-- 父组件 Parent.vue(.child-img对应的是子组件中要修改的元素类名) -->
.child-img {width: 298rpx;height: 186rpx;border-radius: 16rpx;}

在这里插入图片描述
文档地址

相关文章:

  • 涨薪技术|0到1学会性能测试第58课-垃圾回收器
  • 【Pandas】pandas DataFrame cummax
  • 【LeeCode】1.两数之和
  • 读取.ini后缀类型的马达配置文件并进行赋值
  • 【操作系统】零拷贝技术
  • LearnOpenGL02:绘制三角形和矩形
  • 【办公类-99-06】20250512用Python制作PPT的GIF照片动图(统一图片大小、自定义不同切换秒数,以蝴蝶为例)
  • 家具制造行业的现状 质检LIMS如何赋能家具制造企业质检升级
  • 学习黑客5 分钟深入浅出理解系列之 Windows 资源监视器
  • LeetCode 热题 100_只出现一次的数字(96_136_简单_C++)(哈希表;哈希集合;排序+遍历;位运算)
  • Windows 安装 Milvus
  • 基于ESP32的健康智能机器人
  • 使用conda导致无法找到libpython动态库
  • 高粘度、强腐蚀介质解决方案:V型气动带手动活塞式开关调节球阀的五大核心优势-耀圣控制
  • react项目阅读记录
  • 做为一个平台,给第三方提供接口的时候,除了要求让他们申请 appId 和 AppSecret 之外,还应当有哪些安全选项,要过等保3级
  • 加固python文件
  • 用短说社区搭建的沉浸式生活方式分享平台
  • MyBatis-Plus使用 wrapper.apply() 添加自定义 SQL 片段
  • 多线程下的事务失效及解决形式
  • 多地警务新媒体整合:关停交警等系统账号,统一信息发布渠道
  • 字母哥动了离开的心思,他和雄鹿队的缘分早就到了头
  • 城市轨道交通安全、内河港区布局规划、扎实做好防汛工作……今天的上海市政府常务会议研究了这些重要事项
  • 全国汽车以旧换新补贴申请量突破1000万份
  • 美英贸易协议|不,这不是一份重大贸易协议
  • “电竞+文旅”释放价值,王者全国大赛带火赛地五一游