ElementUI框架中el-tree左侧小三角修改自定义图标

本文介绍了如何在ElementUI的el-tree组件中修改左侧小三角图标,包括禁止旋转、有子节点未展开、有子节点已展开和无子节点四种状态的图标自定义方法,通过CSS样式穿透实现图标替换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ElementUI框架中el-tree左侧小三角修改自定义图标

一、先看下效果图

在这里插入图片描述

二、css样式

注意,样式放在scope里不生效,如果必要请加上/deep/样式穿透

// 禁止旋转
.el-tree .el-tree-node__expand-icon.expanded{
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
}
//有子节点 且未展开
.el-tree .el-icon-caret-right:before{
    //这里是你需要修改的图标路径
  background: url("../../assets/img/shouqi.png") no-repeat 0 0;
  content: '';
  display: block;
  width: 14px;
  height: 14px;
  font-size: 14px;
  background-size: 14px;
}
//有子节点 且已展开
.el-tree .el-tree-node__expand-icon.expanded.el-icon-caret-right:before{
  background: url("../../assets/img/zhankai.png") no-repeat 0 0;
  content: '';
  display: block;
  width: 14px;
  height: 14px;
  font-size: 14px;
  background-size: 14px;
}
// 无子节点
.el-tree .el-tree-node__expand-icon.is-leaf::before{
    background: none;
    content: '';
    display: block;
    width: 14px;
    height: 14px;
    font-size: 14px;
    background-size: 14px;
}
### 修改 `el-tree` 组件中箭头位置 为了实现 `el-tree` 组件中节点前缀图标(即展开/折叠箭头)显示在右侧的效果,可以通过自定义样式以及配置项调整。Element UI 的树形控件默认情况下会将这些操作图标放置于左侧。 #### 方法一:CSS 覆盖样式 利用 CSS 来改变 `.el-tree-node__expand-icon` 类的选择器定位,使其向右移动: ```css /* 自定义样式 */ .el-tree-node__content { position: relative; } .el-tree-node__expand-icon { left: auto !important; right: 0px; /* 可根据实际需求微调此数值 */ } ``` 上述代码片段通过覆盖原有类名下的内联样式属性,使得原本位于左边的扩展图标被重新定位于右边[^1]。 #### 方法二:使用插槽 Slot 定制化渲染 如果仅靠外部样式难以达到理想效果,则可考虑采用更灵活的方式——借助 scoped slot 功能来自定义每一级节点的内容布局。具体做法是在模板里加入具名slot,并在此基础上构建新的结构逻辑: ```html <template> <el-tree :data="treeData"> <!-- 使用作用域插槽 --> <span class="custom-tree-node" slot-scope="{ node, data }"> <span>{{ node.label }}</span> <!-- 手动创建切换按钮并处理事件 --> <i v-if="node.isLeaf === false" @click.stop="toggle(node)" :class="[node.expanded ? 'el-icon-remove-outline' : 'el-icon-circle-plus']"></i> </span> </el-tree> </template> <script> export default { methods: { toggle(node){ this.$refs.tree.store.nodesMap[node.key].expanded = !this.$refs.tree.store.nodesMap[node.key].expanded; } }, }; </script> <style lang="scss" scoped> .custom-tree-node { display: flex; align-items: center; justify-content: space-between; i{ cursor:pointer; } } </style> ``` 这段 Vue.js 模板展示了如何通过组合 HTML 和 JavaScript 实现更加精细控制的树状视图组件,其中包含了手动管理节点状态变化的部分[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端大斗师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值