ElementUi的tabs样式太难修改,自定义tabs标签页

ElementUi的Tabs组件在某些情况下难以是自己想要的样式,这时候自定义 Tabs 会是一个更好的选择,可以根据自己想要而设置样式,如图:

一、ElementUi的Tabs样式

链接:Tabs 标签页 | Element Plus

基础:

选项卡:

卡片化:

自定义:

以上样式都不是想要的效果,那么自定义一个tabs是一个选择。

二、自定义tabs

界面渲染

复制代码
<div class="custom-tabs">
    <div class="tabs-header">
        <div 
            v-for="(tab, index) in tabs" 
            :key="index"
            class="tab-item"
            :class="{ 'active': currentTab === index }"
            @click="currentTab = index"
        >
            {{ tab.label }}
        </div>
    </div>
    <div class="tabs-content">
        <component :is="tabs[currentTab].component" />
    </div>
</div>

js

复制代码
// 这里是vue2写法。引入需要的组件,或直接展示内容
import userInfo from "@/views/userg.vue";
import setting from "@/views/setting.vue";
export default {
    name: "",
    components: {
        userInfo,
        setting
    },
    data() {
        return {
            currentTab: 0,
            tabs: [
                { label: "用户信息", component: "userInfo" },
                { label: "系统设置", component: "setting" }
            ]
        }
    },

部分scss

复制代码
.custom-tabs {
    margin: 20px;
    display: flex;
    flex-direction: column;
    
    .tabs-header {
        display: flex;
        height: 60px;
        background-color: rgba(0,0,0,0.04);
        border-radius: 10px;
        
        .tab-item {
            flex: 1;
            text-align: center;
            padding: 12px 0;
            cursor: pointer;
            font-size: 20px;
            color: black;
            position: relative;
            transition: all 0.3s ease;
            
            &:hover {
                color: black;
            }
            
            &.active {
                color: #409EFF;
                font-weight: bold;
                
                &::after {
                    content: '';
                    position: absolute;
                    bottom: 0px;
                    left: 0;
                    width: 100%;
                    height: 2px;
                    background-color: #409EFF;
                }
            }
        }
    }
    
    .tabs-content {
        height: 400px;
        flex: 1;
        padding: 20px 0;
        overflow: auto;
        min-height: 0;
    }
}
复制代码
.custom-tabs {
    margin: 20px;
    display: flex;
    flex-direction: column;
    
    .tabs-header {
        display: flex;
        align-items: center;
        height: 60px;
        background-color: rgba(0,0,0,0.04);
        border-radius: 10px;
        
        .tab-item {
            height: 46px;
            flex: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 10px 10px;
            border-radius: 10px;
            cursor: pointer;
            font-size: 20px;
            color: black;
            position: relative;
            transition: all 0.3s ease;
            
            &:hover {
                color: black;
            }
            
            &.active {
                color: #409EFF;
                font-weight: bold;
                background-color: white;
                
                &::after {
                    content: '';
                    position: absolute;
                    bottom: 0px;
                    left: 0;
                    width: 100%;
                }
            }
        }
    }
    
    .tabs-content {
        height: 400px;
        flex: 1;
        padding: 20px 0;
        overflow: auto;
        min-height: 0;
    }
}

想要什么样式,就修改成什么样式,很实用。

若文章对你有帮助,点赞、收藏加关注吧!

相关推荐
leobertlan2 小时前
2025年终总结
前端·后端·程序员
子兮曰2 小时前
OpenClaw架构揭秘:178k stars的个人AI助手如何用Gateway模式统一控制12+通讯频道
前端·javascript·github
百锦再3 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
莲华君3 小时前
React快速上手:从零到项目实战
前端·reactjs教程
百锦再3 小时前
React编程高级主题:测试代码
android·前端·javascript·react.js·前端框架·reactjs
易安说AI3 小时前
Ralph Loop 让Claude无止尽干活的牛马...
前端·后端
颜酱4 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
失忆爆表症5 小时前
05_UI 组件库集成指南:Shadcn/ui + Tailwind CSS v4
前端·css·ui
小迷糊的学习记录5 小时前
Vuex 与 pinia
前端·javascript·vue.js
发现一只大呆瓜5 小时前
前端性能优化:图片懒加载的三种手写方案
前端·javascript·面试