1 问题描述
我在用 uni-app vue3 语法开发微信小程序时,在项目中使用了
uview-plus
这一开源 UI 框架。在使用
up-text
组件时,想要给它添加一些样式,之前了解到微信小程序存在样式隔离的问题,也在uview-plus官网-注意事项中找到了相关解决方法,尝试后发现样式仍然不能失效。
<template><viewclass="container"><up-texttext="标题"></up-text><up-texttext="内容"class="content"></up-text></view></template><stylescoped>.container ::v-deep .content{margin-top: 5px !important;border: 1px solid red;}</style>
说明:由于不是自定义组件,所以不是配置
styleIsolation
参数的问题(以下不需要进行配置)
<script setup>// 功能实现</script>// 配置自定义组件样式穿透<script>exportdefault{ options:{ styleIsolation:'shared'}}</script>
2 引发原因
在微信开发者工具查看页面 DOM 结构时发现,我给第二个
up-text
添加的类名
.content
没有生效。
3 解决方法
通过
up-text
内部类
.u-text
和伪类
:nth-child
结合使用定位到要添加自定义样式的元素。
<stylescoped>.container ::v-deep .u-text:nth-child(2){margin-top: 5px !important;border: 1px solid red;}</style><!-- 备注:!important 用于覆盖 up-text 默认的 margin: 0 样式 -->
版权归原作者 Vesuvius688 所有, 如有侵权,请联系我们删除。