【uniapp】在微信小程序中修改uni-ui组件样式不生效的解决方案

这篇具有很好参考价值的文章主要介绍了【uniapp】在微信小程序中修改uni-ui组件样式不生效的解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在使用uniapp框架开发微信小程序时,使用到了uni-ui的uni-table组件。由于需要修改表头的背景色,于是乎在微信开发工具中使用调试工具审查元素获取其class名:
uniapp 样式为什么使用不了soild,Vue,微信小程序,微信小程序,ui,css
尝试直接在页面中修改样式:

.uni-table-th {
	background-color: #ddd;
}

结果无效。于是尝试使用深度选择器

::v-deep .uni-table-th {
	background-color: #ddd;
}

依然无效。然后查询微信平台官方开发文档得知,微信中的组件存在组件样式隔离,即自定义组件的样式只受到自定义组件 wxss 的影响。
此时如果想在其它页面影响到该组件的样式,需要在施加影响的组件中加入选项:

  options: {
    styleIsolation: 'shared', // 解除样式隔离
  }

shared表示页面 wxss 样式将影响到自定义组件,自定义组件 wxss 中指定的样式也会影响页面和其他设置了 apply-shared 或 shared 的自定义组件。(这个选项在插件中不可用。)

根据以上设定,我们可以在想要改变uni-ui组件的组件中加入该选项,样式就正常被修改了。

但其实,还有更方便的改法:直接全局修改。当然最好加上容器以免污染其它组件的样式,除非这是一个通用样式。
由于我的修改是应用于所有该类型组件的,所以我选择了全局修改。
具体来说我的做法是,在全局样式文件global.scss中加入想要修改的样式:

.uni-table-scroll {
	&.table--border {
		border: 1px solid $border-color;
		border-bottom: 1px solid $border-color;
	}
	.uni-table-tr:nth-child(odd) {
		background-color: $table-odd-td-bgcolor;
	}
}

然后在uni.scss中引入即可:

@import "@/static/scss/common/global.scss";

补充

如果你在项目中使用的是组合式api+ts,那么正常情况下是没有选项的,这时候可以在<script lang=ts setup>的上方再加一个script标签,然后往里面添加选项即可,需要注意的是,新增的script标签也需要添加lang="ts",如下所示:

<script lang="ts">
	export default {
		options: {
			styleIsolation: 'shared', // 解除样式隔离
		},
	}
</script>
<script lang="ts" setup>
...
</script>

总结

如果发现直接修改uni-ui或其它第三方组件的样式无效,有以下两种方法可以尝试:文章来源地址https://www.toymoban.com/news/detail-787381.html

  1. 在选项中加入styleIsolation: 'isolated'来达到解除样式隔离的目的;
  2. 全局修改。

到了这里,关于【uniapp】在微信小程序中修改uni-ui组件样式不生效的解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Uniapp之uni-ui-扩展组件(1)

    uni组件符合easycom规范,HBuilderX 2.5.5起,只需将本组件导入项目,在页面template中即可直接使用,无需在页面中import和注册components HBuilder插件市场(uni-ui组件库) uni-ui 不支持使用 Vue.use() 的方式安装 npm安装uni-ui库(vue-cli项目需先安装sass及sass-loader,HBuilder可省略) 安装sass:

    2023年04月08日
    浏览(49)
  • 解决 uniapp 修改uview样式,h5端生效,在微信小程序不生效。

    /deep/ 的兼容性不好,node-sass支持这个 /deep/ 。但是 node-sass 被 sass 和现代项目抛弃了。 如果项目里装了 sass 和 node-sass sass-loader会优先使用sass,sass只认识 ::v-deep 。 请根据自己的项目选择使用 ::v-deep 还是 /deep/ 。

    2024年02月03日
    浏览(45)
  • uniapp 官方 ui组件库 uni-ui 的uni-data-checkbox 如何实现自定义选中时的边框颜色

    官方组件并不支持这一项自定义,所以选择修改组件库,非常简单,傻瓜式修改。 首先找到该组件文件,这个就不过多赘述了。贴下图:    在props选项中增加一个borderColor变量:  找到设置背景的方法中添加两行代码  然后是使用:  效果:  完结!!!

    2024年02月08日
    浏览(49)
  • uniapp+vue3+vite+ts搭建项目引入uni-ui和uviewPlus组件库

    一、创建项目架构 首先使用官方提供的脚手架创建一个项目 在这里插入代码片 ,这里我创建的 vue3 + vite + ts 的项目: (如命令行创建失败,请直接访问 gitee下载模板) 二、下载依赖 启动 三、下载安装包 引入uni-ui src/package.json 文件配置easycom模式 引入uview-plus main.ts配置 u

    2024年02月13日
    浏览(63)
  • 【uniapp】小程序开发:2 安装uni-ui组件库、使用pinia状态管理、自定义http请求

    1、安装 2、配置组件自动导入 使用 npm 安装好 uni-ui 之后,需要配置 easycom 规则,让 npm 安装的组件支持 easycom 打开项目根目录下的 pages.json 并添加 easycom 节点: 3、安装插件,实现uni-ui组件的类型提示 安装完成后,在 tsconfig.json 中增加配置项 4、测试使用 随便复制一个组件在

    2024年02月08日
    浏览(60)
  • uni-app:vue3 + uni-app 在微信小程序中无法使用app.component全局注册组件

    按上文中的代码执行后,会发现在微信小程序开发中全局注册的组件是无法显示的,这是uniapp的一个未解决bug, 在uniapp中出了可以通过vue实例的component方法注册全局组件外,uniapp支持另一种全局注册的方式,就是通过 easycom 扫描注册,步骤如下 easycom 的扫描流程是:通过代码

    2024年02月16日
    浏览(98)
  • uniapp rich-text 富文本组件在微信小程序中自定义内部元素样式

    rich-text 富文本组件在 微信小程序 中,无法直接通过 外部css样式 控制文章内容样式。 解决方案:将传入的富文本内容截取并添加自定义样式类名 (1)全局配置filter方法,实现富文本内容截取转换,附上‘rich-txt-p’样式类 (2)在app.vue中编辑‘rich-txt-p’内容,即富文本需要

    2024年02月19日
    浏览(62)
  • uniapp之通过vue-cli命令行创建Vue3/Vite版,JavaScript开发,引入uni-ui扩展组件

    注意: Vue3/Vite版要求 node 版本^14.18.0 || =16.0.0 如果使用 HBuilderX(3.6.7以下版本)运行 Vue3/Vite 创建的最新的 cli 工程,需要在 HBuilderX 运行配置最底部设置 node路径 为自己本机高版本 node 路径(注意需要重启 HBuilderX 才可以生效) HBuilderX Mac 版本菜单栏左上角 HBuilderX-偏好设置

    2024年02月12日
    浏览(62)
  • 微信小程序修改原生组件样式(uni-app)

    微信小程序修改原生组件样式 全局修改,直接将修改的样式写在全局的样式文件中; 特殊情况:修改swiper指示点样式时,需要包裹在swiper的样式选择器下才生效。 直接将下列代码放在全局样式中是不会生效的,需要加上swiper组件的元素选择器或swiper组件的其他样式名也可。

    2024年02月05日
    浏览(76)
  • UniApp、微信小程序、Vue常用的UI组件

    在前端项目开发过程中,总是会引入一些UI框架,已为方便自己的使用,很多大公司都有自己的一套UI框架,下面就是最近经常使用并且很流行的UI框架。 MintUI是饿了么团队开发基于vue.js的移动端UI框架,它包含丰富的CSS和JS组件,能够满足日常的移动端开发需要。 官网地址:

    2024年02月12日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包