vue+ elelment-ui +tree树形组件背景颜色的修改,点击节点背景颜色修改设置为其他颜色,或是样式不生效的原因

本文仅作为我在初次学习vue+element-ui路上碰到的一些问题以及解决的办法的记录,不论问题的难易程度,于我而言是一种成长过程的记录,望大佬勿喷。

vue+ elelment-ui +tree树形组件背景颜色的修改,直接在Element官网拷贝过来的树形组件背景颜色是白色,每次点击以及鼠标悬浮上后会有一个偏灰的背景颜色。如图
整

但是如果我需要用树形组件放在一个黑色背景或其他背景颜色时,树形自身的背景颜色就会显得很突兀所以需要修改,而在官方文档中,配置方法函数等都没有关于修改样式的,所以我们如果要修改的话只能这个只能自己对样式进行干涉,自己去覆盖样式,然后我们通过元素审查来查看原代码,找到相对于的类名进行覆盖,大概过程就是这样,不说别的了,上图。

在这里插入图片描述

在这里插入图片描述

找到我们需要的东西后,直接在代码里对这些类名进行新的样式覆盖就好了。我自己写了一个小demo来做进行测试。以下是成品。

在这里插入图片描述

以下为样式代码。

在这里插入图片描述

如果新覆盖的样式不生效可以试试这样:

1.样式设置为全局样式,如果用的是脚手架组件,组件样的style标签加了scope, 那么覆盖极有可能不生效,可以选择放到App.vue中
2. 给样式设置 !important ,提高指定样式规则的应用优先级。

ps:都学到vue啦,基础应该也不错啦,如果我的过程中有什么不明白的代码,直接百度搜一下就能出来什么意思了。如果更好的方法或者不好的地方,欢迎提点。

<think>嗯,用户想在Vueelement-ui的el-tree组件中自定义节点点击后的高亮颜色。我需要先回想一下element-ui的文档和相关配置。记得el-tree有很多属性可以调整样式,但高亮颜色可能需要覆盖默认的CSS样式。 首先,用户提到的是点击节点后的高亮颜色,可能涉及到选中状态的样式。在element-ui中,选中节点通常会有一个背景色或者颜色变化。可能需要检查el-tree的文档,看是否有提供直接修改高亮颜色的属性或者方法。比如,是否有类似highlight-current-color这样的属性?或者可能需要通过CSS类来覆盖。 如果文档中没有直接暴露的prop,那么可能需要通过CSS样式覆盖。这时候需要找到对应的CSS类名。例如,使用浏览器的开发者工具,检查高亮节点的元素,找到应用了背景色或颜色的类。例如,可能是一个类似于.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content这样的选择器,里面可能有background-color属性。 然后,用户需要在Vue组件的style部分,使用/deep/或者::v-deep来穿透scoped样式修改这些类的样式。需要注意scoped样式的问题,确保自定义的样式能够生效。可能需要写类似这样的代码: <style lang="less" scoped> /deep/ .el-tree-node__content:hover { background-color: #ff0000; } /deep/ .el-tree-node.is-current > .el-tree-node__content { background-color: #00ff00 !important; } </style> 另外,用户提供的引用[1]和[2]中,看到他们在template里使用了node-click事件,并且通过slot自定义了节点内容。可能也可以通过slot来自定义节点样式,但高亮颜色可能还是需要CSS来控制。 还要考虑是否在组件设置了highlight-current属性,这个属性是必须的,因为它启用了当前节点的高亮显示。如果没有设置,可能高亮不会出现。所以需要确认用户的代码中是否有这个属性。 总结下来,步骤可能是:首先检查是否有现成的属性可用,如果没有,就通过CSS覆盖默认样式,使用更具体的选择器,并可能用到!important来覆盖内联样式。同时,确保highlight-current属性已启用。</think>### 修改 el-tree 点击高亮颜色的方法 在 Element-UI 的 `el-tree` 组件中,点击节点的高亮颜色组件默认样式控制。如需自定义,可通过以下步骤实现: --- #### **1. 覆盖默认 CSS 样式** 通过定义全局或局部 CSS 样式覆盖 `el-tree` 的高亮颜色。 **示例代码**: ```html <style lang="less" scoped> /* 覆盖当前选中节点的高亮颜色 */ /deep/ .el-tree-node.is-current > .el-tree-node__content { background-color: #ffd700 !important; /* 自定义颜色 */ } </style> ``` - **关键点**: - 使用 `/deep/` 或 `::v-deep` 穿透 scoped 样式限制。 - 目标类名为 `.el-tree-node.is-current > .el-tree-node__content`,表示当前选中节点的内容区域[^1][^2]。 --- #### **2. 动态绑定类名(可选)** 若需动态切换颜色,可通过 `:class` 绑定自定义类名: ```html <el-tree :data="treeData" :props="defaultProps" :class="customTreeClass"></el-tree> ``` ```javascript data() { return { customTreeClass: 'custom-highlight' }; } ``` ```css .custom-highlight /deep/ .el-tree-node.is-current > .el-tree-node__content { background-color: #ffa500; } ``` --- #### **3. 验证 `highlight-current` 属性** 确保已启用 `highlight-current` 属性以激活高亮功能: ```html <el-tree :data="treeData" highlight-current></el-tree> ``` --- #### **效果对比** | 默认样式 | 自定义样式 | |------------------------------|------------------------------| | 蓝色背景 (`#ecf5ff`) | 任意指定颜色(如 `#ffd700`) | ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值