首页 > 编程语言 >uniapp 二次封装ui组件加class样式或修改样式在微信小程序不生效的情况

uniapp 二次封装ui组件加class样式或修改样式在微信小程序不生效的情况

时间:2024-07-10 10:33:51浏览次数:5  
标签:uniapp 自定义 样式 微信 组件 shared wxss 页面

原因:首先不论是自定义组件还是ui组件,本质上的原因都是微信小程序默认的组件隔离策略导致的。

微信小程序组件隔离文档参考

组件样式隔离

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

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

自定义组件 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 的自定义组件的影响。

 

示例:

<template>
    <view class="confirm-modal">
        <u-modal :show="show" :title="title" :showConfirmButton="false">
            <view class="slot-content">
                <slot name="content"></slot>
            </view>
        </u-modal>
    </view>
</template>

<script>
export default {
    props: {
        title: {
            type: String
        },
        showModal: {
            type: Boolean,
            default: false
        }
    },
    computed: {
        show() {
            return this.showModal
        }
    },
    options: {
        styleIsolation: 'shared' // 解除样式隔离
    },
    data() {
        return {}
    },
    methods: {}
}
</script>

<style lang="scss">
// 弹窗
/deep/.confirm-modal {
    .u-modal {
        .slot-content {
            width: 100%;
        }
    }
}
</style>

 

 

 

 

 

 

     

 

 

标签:uniapp,自定义,样式,微信,组件,shared,wxss,页面
From: https://www.cnblogs.com/angia/p/18293379

相关文章

  • Odoo17.0 基于企业微信的备用金和费用报销
    前面讲过了企业微信的基础应用,现在我们来看一下如何借助企业微信的审批端能力结合odoo来实现企业中的两大常规业务流程备用金和费用报销。企业微信端设置我们这里使用的是企业微信的原生审批流程,因此我们需要首先在企业微信端设置好审批流程的节点设置。我们这里使用的是企业......
  • 微信小程序——选项卡页面切换和视频播放
    选项卡页面切换一、选项卡页面切换第一部分选项点击切换第二部分选项卡页面内容滑动二、视屏播放第一部分发布弹幕第二部分点击视频播放和视频切换效果图一、选项卡页面切换第一部分选项点击切换代码部分.wxml部分<viewclass="dhangnan"><vie......
  • 基于SpringBoot+Vue+uniapp的酒店客房管理系统的详细设计和实现(源码+lw+部署文档+讲
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的干洗店预约洗衣系统的详细设计和实现(源码+lw+部署文档+
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • QPushButton的checked和pressed样式设置无效是因为优先级问题
    设置QPushButton想要设置pressed状态的图标,但是尝试了很多次都没有效果,原来是按照优先级来的,位置越往下优先级越高,hover状态时在最下面,所以鼠标在按钮上时,hover优先级最高,所以无论pressed还是checked都无法显示正确的图标,所以要调整下顺序; QPushButton{border-image:url......
  • 微信小程序图片加载问题及解决方案
    引言在开发微信小程序的过程中,我们经常会遇到图片加载的问题。本文将分享一个常见的问题及其解决方法,帮助开发者避免在小程序中遇到图片加载失败或报错的情况。问题背景在开发一个微信小程序时,我遇到了一个棘手的问题:当图片的src属性被设置为一个变量时,图片无法成功加载,甚至......
  • 微信小程序 wx.navigateto无法跳转 原因如下:
     wx.navigateto无法跳转报错问题:"wx.navigateto无法跳转"可能的原因和解决方法如下: 错误的使用方式:确保你使用的是wx.navigateTo而不是wx.navigateto,注意大小写。  目标页面不存在或路径错误:检查你要跳转的页面路径是否正确,确保在app.json中已经声明。......
  • springboot整合微信公众号实现模版消息推送
    欢迎来到我的博客,代码的世界里,每一行都是一个故事......
  • 【Javascript】微信小程序项目结构目录详解
    我白天是个搞笑废物表演不在乎夜晚变成忧伤怪物撕扯着孤独我曾经是个感性动物小心地感触现在变成无关人物                     ......
  • 基于SpringBoot+Vue+uniapp的汽车维修预约服务系统的详细设计和实现(源码+lw+部署文档
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......