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

解决小程序样式隔离styleIsolation

背景

当使用uni-app开发小程序时,使用原生组件,例如:uni-popup,picker-view,将这些组件又进行了封装,实现父子组件引用,当修改子组件的原生组件样式时,编译到小程序发现样式无效,使用了/deep/,::v-deep也不行,但是运行到H5或者使用App就可以。

原因

在小程序种,类似于页面,自定义组件拥有自己的 wxml 模板和 wxss 样式

组件模板

组件模板的写法与页面模板相同。组件模板与组件数据结合后生成的节点树,将被插入到组件的引用位置上。
在组件模板中可以提供一个 节点,用于承载组件引用时提供的子节点

代码示例:

<!-- 组件模板 -->
<view class="wrapper"><view>这里是组件的内部节点</view><slot></slot>
</view>
<!-- 引用组件的页面模板 -->
<view><component-tag-name><!-- 这部分内容将被放置在组件 <slot> 的位置上 --><view>这里是插入到组件slot中的内容</view></component-tag-name>
</view>

注意,在模板中引用到的自定义组件及其对应的节点名需要在 json 文件中显式定义,否则会被当作一个无意义的节点。除此以外,节点名也可以被声明为抽象节点。

小程序样式隔离官方文档

解决组件样式隔离

默认情况下,自定义组件的样式只受到自定义组件 wxss 的影响。除非以下两种情况:

指定特殊的样式隔离选项 styleIsolation
webview 渲染下,在 app.wxss 或页面的 wxss 中使用标签名选择器(或一些其他特殊选择器)来直接指定样式会影响到页面和全部组件。通常情况下这是不推荐的做法

export default {name: "selectArea",options:{styleIsolation: 'shared'  //vue2种的使用}}

自定义组件 JSON 中的 styleIsolation 选项从基础库版本 2.10.1 开始支持。它支持以下取值:

  • isolated 表示启用样式隔离,在自定义组件内外,使用 class 指定的样式将不会相互影响(一般情况下的默认值);
  • apply-shared 表示页面 wxss 样式将影响到自定义组件,但自定义组件 wxss 中指定的样式不会影响页面;
  • shared 表示页面 wxss 样式将影响到自定义组件,自定义组件 wxss 中指定的样式也会影响页面和其他设置了 apply-shared 或 shared 的自定义组件。(这个选项在插件中不可用。)

使用后两者时,请务必注意组件间样式的相互影响。

如果这个 Component 构造器用于构造页面 ,则默认值为 shared ,且还有以下几个额外的样式隔离选项可用:

  • page-isolated 表示在这个页面禁用 app.wxss ,同时,页面的 wxss 不会影响到其他自定义组件;
  • page-apply-shared 表示在这个页面禁用 app.wxss ,同时,页面 wxss 样式不会影响到其他自定义组件,但设为
    shared 的自定义组件会影响到页面;
  • page-shared 表示在这个页面禁用 app.wxss ,同时,页面 wxss 样式会影响到其他设为 apply-shared 或
    shared 的自定义组件,也会受到设为 shared 的自定义组件的影响
http://www.dtcms.com/a/552984.html

相关文章:

  • 改变世界的编程语言MoonBit:配置系统介绍(下)
  • mip网站推广普通话宣传周活动方案
  • EL(F)K日志分析系统
  • 算法题——图论
  • AutoCAD开发:主流语言与实用插件精选
  • 余姚响应式网站建设做个网站应该怎么做
  • Docker 日志管理实战:轻松掌控容器输出
  • 移动端h5适配方案
  • 【雅思备考】雅思写作笔记
  • 亚马逊产品备案网站建设要求域名不变修改网站怎么做
  • 6-3〔O҉S҉C҉P҉ ◈ 研记〕❘ 客户端攻击▸通过宏文件实现反向shell
  • Python 实现 Excel 连续数据分组求平均值
  • 小红书获取笔记详情API接口运用指南
  • SQL 自连接详解:当数据表需要与自己对话(组织层级实战)
  • AI代码开发宝库系列:Text2SQL技术入门
  • 网站充值链接怎么做三亚做网站推广
  • 在Azure webapp中搭建 基于chroma的 RAG agent
  • 【春秋云境】CVE-2024-38856 Apache OFbiz从未授权到RCE
  • 货拉拉用户画像基于 Apache Doris 的数据模型设计与实践
  • JAR 包中替换依赖jar的正确姿势(Windows 环境)
  • linux驱动开发之pr_warn和pr_warning
  • Keil(MDK-ARM)和 STM32CubeIDE对比
  • Linux上使用Docker安装MinIO指南
  • Maven 依赖冲突:解决 jar 包版本不一致的 3 种方法
  • android集成react native组件踩坑笔记(Activity局部展示RN的组件)
  • 多语言网站思路十大h5页面制作工具
  • 汽车之家网站系统是什么做的防爆玻璃门网站建设
  • k8s——services资源+pod详解1
  • 基于深度学习的医疗器械分类编码映射系统:实现篇
  • [人工智能-大模型-122]:模型层 - RNN是通过神经元还是通过张量时间记录状态信息?时间状态信息是如何被更新的?