uni-app 更改默认组件样式

本文介绍了在vue-cli3环境下,如何处理组件样式只作用于本组件而不污染全局的方法。通过在 scoped 样式中使用 /deep/ 或 ::v-deep 选择器,可以穿透组件的 scoped 属性,修改子组件的样式。同时,文章展示了在修改uView的Checkbox复选框样式时的具体应用,并提供了编辑前后的效果对比。这为开发者在uni-app或vue项目中更改默认组件样式提供了解决方案。

一、说明

  • uView文档 Checkbox 复选框

  • vue组件编译后,会将 template 中的每个元素加入 [data-v-xxxx] 属性来确保 style scoped 仅本组件的元素而不会污染全局

  • 横向排列不换行,如下
    在这里插入图片描述

  • 增加样式 flex-wrap: wrap;,成功换行
    在这里插入图片描述

二、解决

1、在class前面 加入deep

  • 如果你期待通过如修改其子class的样式。来影响展示效果,直接增加class是没有任何效果的
  • 需要在修改指定的组件样式class前面 加入deep才可以
<style lang="scss" scoped>
/deep/ .u-checkbox-group--row{
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}
</style>

2、在vue-cli3编译时,用 ::v-deep

  • 在vue-cli3编译时,deep的方式会报错或者警告,我们用 ::v-deep
<style lang="scss" scoped>
::v-deep .u-checkbox-group--row{
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}
</style>

3、编辑前,编辑好 截图对比

  • 编辑前
    在这里插入图片描述
  • 编辑后
    在这里插入图片描述

三、他山之石

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值