关于修改element-ui中Tabs标签页选中标签下划线缩短居中效果的实现方法

本文介绍如何修改Element-UI中Tabs组件的选中标签下划线样式,将其长度缩短并居中,通过CSS渐变和透明度控制实现动态效果。涉及CSS代码和思路解析。

关于修改element-ui中Tabs标签页选中标签下划线缩短居中效果的实现方法

需求描述: 下划线需要改为原来的一半,并且可以根据元素长度动态更换长度。

原样式:
在这里插入图片描述    在这里插入图片描述
改为以下样式:
在这里插入图片描述   在这里插入图片描述

思路如下:element-ui通过一个独立的元素实现tab间切换能够达到下划线滑动的动态效果,所以将下划线独立为一个元素,并非使用tab自身的盒子设置下边框的样式去实现,无法在自身盒子中实现目标样式。于是想到了控制颜色的方法实现效果,通过改变下划线的颜色为渐变色,左右两边颜色透明,中间段颜色为蓝色,渐变位置取百分比,如此便能实现目标效果。

代码如下:(在可以影响样式的情况下添加如下css样式代码)

.el-tabs__active-bar {
    background-color: transparent !important;
    background-image: linear-gradient(
    	90deg, transparent 0, transparent 27%,
    	#4d72f6 0, #4d72f6 73%,
    	transparent 0, transparent
    );
}
<template> <div class="app-container"> <el-row :gutter="20"> <el-col :span="6" :xs="24"> <el-card class="box-card"> <div slot="header" class="clearfix"> <span>个人信息</span> </div> <div> <div class="text-center"> <userAvatar /> </div> <ul class="list-group list-group-striped"> <li class="list-group-item"> <svg-icon icon-class="user" />用户名称 <div class="pull-right">{{ user.userName }}</div> </li> <li class="list-group-item"> <svg-icon icon-class="phone" />手机号码 <div class="pull-right">{{ user.phonenumber }}</div> </li> <li class="list-group-item"> <svg-icon icon-class="email" />用户邮箱 <div class="pull-right">{{ user.email }}</div> </li> <li class="list-group-item"> <svg-icon icon-class="tree" />所属部门 <div class="pull-right" v-if="user.dept">{{ user.dept.deptName }} / {{ postGroup }}</div> </li> <li class="list-group-item"> <svg-icon icon-class="peoples" />所属角色 <div class="pull-right">{{ roleGroup }}</div> </li> <li class="list-group-item"> <svg-icon icon-class="date" />创建日期 <div class="pull-right">{{ user.createTime }}</div> </li> </ul> </div> </el-card> </el-col> <el-col :span="18" :xs="24"> <el-card> <div slot="header" class="clearfix"> <span>基本资料</span> </div> <el-tabs v-model="selectedTab"> <el-tab-pane label="基本资料" name="userinfo"> <userInfo :user="user" /> </el-tab-pane> <el-tab-pane label="修改密码" name="resetPwd"> <resetPwd /> </el-tab-pane> </el-tabs> </el-card> </el-col> </el-row> </div> </template> <script> import userAvatar from "./userAvatar" import userInfo from "./userInfo" import resetPwd from "./resetPwd" import { getUserProfile } from "@/api/system/user" export default { name: "Profile", components: { userAvatar, userInfo, resetPwd }, data() { return { user: {}, roleGroup: {}, postGroup: {}, selectedTab: "userinfo" } }, created() { const activeTab = this.$route.params && this.$route.params.activeTab if (activeTab) { this.selectedTab = activeTab } this.getUser() }, methods: { getUser() { getUserProfile().then(response => { this.user = response.data this.roleGroup = response.roleGroup this.postGroup = response.postGroup }) } } } </script> 美化
最新发布
09-24
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值