今天针对ElementUI的Tabs标签页进行了样式修改,更改为如下图所属的样子。
在线运行地址:JSRUN项目-ElementUI tabs标签页样式改造
大家如果有需要可以拿来修改使用,下面我也简单的贴上代码,代码没有注释,很抱歉,时间比较匆忙。
HTML:
<div id="app">
<el-tabs type="border-card">
<el-tab-pane label="用户管理">用户管理</el-tab-pane>
<el-tab-pane label="配置管理">配置管理</el-tab-pane>
<el-tab-pane label="角色管理">角色管理</el-tab-pane>
<el-tab-pane label="定时任务补偿">定时任务补偿</el-tab-pane>
</el-tabs>
</div>
## CSS:
:root {
--border-color: #d9d9d9;
--primary-gradient: linear-gradient(180deg, #a1fcf0, #11aa95);
--active-primary-gradient: linear-gradient(180deg, #c6ffdd, #69d192);
}
.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover {
color: #FFFFFF;
}
.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active {
color: #FFFFFF;
background: var(--active-primary-gradient);
z-index: 999;
}
.el-tabs--border-card>.el-tabs__header {
position: relative;
}
.el-tabs--border-card>.el-tabs__header .el-tabs__item {
color: #FFFFFF;
margin: 0 30px;
background: var(--primary-gradient);
border: none;
height: 28px;
line-height: 28px;
}
.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child {
margin-left: 22px;
}
.el-tabs--border-card>.el-tabs__header .el-tabs__item::before,
.el-tabs--border-card>.el-tabs__header .el-tabs__item::after {
content: "";
height: 100%;
position: absolute;
background: var(--primary-gradient);
border-radius: 8px 8px 0 0;
width: 30px;
top: 0;
transition: all .3s cubic-bezier(.645, .045, .355, 1);
}
.el-tabs--border-card>.el-tabs__header .el-tabs__item::before {
right: -16px;
transform: skew(-25deg);
border-radius: 0 0 8px 0;
}
.el-tabs--border-card>.el-tabs__header .el-tabs__item::after {
transform: skew(25deg);
left: -16px;
border-radius: 0 0 0 8px;
border-left: 1px solid var(--border-color);
}
.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active::before,
.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active::after {
background: var(--active-primary-gradient);
transition: all .3s cubic-bezier(.645, .045, .355, 1);
z-index: 999;
}
.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active::before {
border-right: 1px solid var(--border-color);
}
.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active::after {
border-left: 1px solid var(--border-color);
}
JS:
var app = new Vue({
el: '#app',
data() {
return {
}
},
methods: {
}
});