前言

今天工作时有一个需求,大致是把elementUI的选项卡标签样式修改修改。起初是想直接重写element样式类,但是需求中还需对标签中的数字特殊处理,这种方式就行不通了。百度找了很久,终于在一个偏僻的角落找到了答案。

正文

使用插槽

其实这个解决方式,也是我第一时间想到的,但是查阅官网后,发现并没有对label的插槽。但是看着那位老哥的写法,试了试果然成功了。现在整理整理,发出来与大家共勉。

原始的代码以及效果图
<template><el-tabs v-model="activeName" @tab-click="handleClick"><el-tab-panev-for="item in tabs":label="item.count ? item.title + item.count : item.title":name="item.value":key="item.id">{{ item.id }}</el-tab-pane></el-tabs>
</template><script>
export default {data() {return {activeName: "first",tabs: [{title: "消息",value: "first",count: 3,id: 1},{title: "待办",value: "second",count: 4,id: 2},{title: "角色管理",value: "third",id: 3}]};},methods: {handleClick(tab, event) {console.log(tab, event);}}
};
</script><style scoped></style>


如果我对整体进行处理,比如把消息3字体设置大一些,颜色改一改,那么你直接重写el-tab-pane这个样式类即可;但现在我想给标签中的数字来点间距和背景色啥的,这种方式就不行了。下面是解决方法。

使用插槽后的代码和效果图
<template><el-tabs v-model="activeName" @tab-click="handleClick"><el-tab-panev-for="item in tabs":label="item.count ? item.title + item.count : item.title":name="item.value":key="item.id"><div slot="label"><span class="key">{{ item.title }}</span><span class="value" v-if="item.count">{{ item.count }}</span></div>{{ item.id }}</el-tab-pane></el-tabs>
</template><script>
export default {data() {return {activeName: "first",tabs: [{title: "消息",value: "first",count: 3,id: 1},{title: "待办",value: "second",count: 4,id: 2},{title: "角色管理",value: "third",id: 3}]};},methods: {handleClick(tab, event) {console.log(tab, event);}}
};
</script><style scoped>
.value {color: #ff0000;font-size: 16px;
}
</style>


如果你要是接过来一张设计稿,里面提及选项卡标签选中和未选中的字体颜色,大小,背景颜色等等,那么当你设置了这些样式之后,就会发现elementUI的默认tab切换效果失效了。这时,我们就要写一个active类来控制切换样式。在这里我简单示范下。

最终代码以及预览图
<template><el-tabs v-model="activeName" @tab-click="handleClick"><el-tab-panev-for="item in tabs":label="item.count ? item.title + item.count : item.title":name="item.value":key="item.id"><divslot="label"class="my-label":class="activeName === item.value ? 'tab-active' : ''"><span class="key">{{ item.title }}</span><span class="value" v-if="item.count">{{ item.count }}</span></div>{{ item.id }}</el-tab-pane></el-tabs>
</template><script>
export default {data() {return {activeName: "first",tabs: [{title: "消息",value: "first",count: 3,id: 1},{title: "待办",value: "second",count: 4,id: 2},{title: "角色管理",value: "third",id: 3}]};},methods: {handleClick(tab, event) {console.log(tab, event);}}
};
</script><style scoped>
.my-label {color: #424242;
}.my-label .key {font-size: 14px;font-family: PingFangSC-Regular, PingFang SC;font-weight: 400;line-height: 20px;
}.my-label .value {vertical-align: middle;display: inline-block;width: 21px;height: 16px;font-size: 12px;font-family: CZ-Regular, CZ;font-weight: 400;line-height: 15px;background: #f5f5f5;border-radius: 8px;margin: -4px 0 0 4px;
}.tab-active {color: #01b27a;
}.tab-active .value {background-color: #e5f7f1;
}
</style>


如果对你有帮助的话,请点一个赞吧

element tab选项卡标签样式相关推荐

  1. layui tab选项卡外部html页面,layui的Tab选项卡知识

    layui的公共类: lay-filter=" " 事件过滤器.你可能会在很多地方看到他,他一般是用于监听特定的自定义事件.你可以把它看作是一个ID选择器 layui的公共属性: ...

  2. 使用jQuery开发tab选项卡插件

    为了复习巩固jQuery的插件开发.HTML和CSS方面的知识,做了一个简单的tab选项卡插件,简单记录一下开发.使用的过程,以备日后使用. 一.插件效果 tab选项卡插件常用的功能均已实现,包括:动 ...

  3. [Layui]主页tab选项卡操作(刷新页面,刷新选项卡,关闭,关闭其他,全部关闭)

    主页tab选项卡操作(刷新页面,刷新选项卡,关闭,关闭其他,全部关闭) 效果如下: CSS <style>.layui-tab-item {height: 100%;width: 100% ...

  4. layui获取tab页id_LayUI的Tab选项卡切换显示对应数据

    LayUI tab选项卡 + 分页展示 实现 Tab选项卡切换显示对应数据 要求:实现tab选项卡改变的同时展示数据也跟着改变 实现条件: 1.选项卡[官网 – 文档/示例 – 页面元素 – 选项卡] ...

  5. 动感效果的TAB选项卡 jquery 插件

    动感效果的TAB选项卡 jquery 插件 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  6. 【Android UI设计与开发】第11期:顶部标题栏(二)ActionBar实现Tab选项卡和下拉导航列表

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9050573  在上一篇文章中,我们只是大概的了解了一下关于ActionBar ...

  7. 用fieldset标签轻松实现Tab选项卡效果

    fieldset是一个不常用的HTML标签,它可以将表单内的元素分组显示,legend标签为 fieldset 元素定义标题.由于各浏览器在显示fieldset和legend结构时会自动为其添加边框和 ...

  8. html tab选项卡 控件,tab选项卡插件

    这是一款使用十分方便的.为移动设备定制的.可在水平和垂直两个方向上显示的jQuery和css3响应式tab选项卡插件.在你要显示很多不同的内容时,tab选项卡导航方式是十分有用的.常见的方式是在同一个 ...

  9. iOS开发-iPad侧边栏Tab选项卡切换

    Android中习惯了叫侧边栏,iOS中如果不习惯侧边栏称呼的话可以叫dock,侧边栏的切换,类似于Android中的底部导航栏的切换,iPad尺寸大了一些,导航的栏目放在侧边会显示的更好耐看一些.选 ...

最新文章

  1. 对微软Web Deploy的一次艰难调试
  2. android menu自定义,Android提高之自定义Menu(TabMenu)实现方法
  3. java封装对象数组_java解析JSON对象和封装对象的示例
  4. python glob.glob使用
  5. 视图单行子查询返回mysql,Oracle命令整理 - osc_sj1kgo4z的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. Django模型基础(三)——关系表的数据操作
  7. Python 90行代码让微信地球转起来,你也可以!| 原力计划
  8. kettle 插入更新 数据增量_kettle基于时间戳增量更新
  9. 确定有限自动机DFA
  10. 中值滤波 matlab程序实现(一)
  11. 等保测评--管理制度安全测评
  12. numpy block创建分块矩阵
  13. Delphi XE4 IOS 开发, No eligible applications were found“
  14. seo排名工具-seo排名软件
  15. webmsxyw x-s分析
  16. 蒂森mc2服务器老显示fc00,蒂森电梯故障代码
  17. StreamSets 3.22.2 安装部署
  18. javax.servlet.http.HttpServletRequest错误
  19. 2. Python3 变量和简单数据类型
  20. 现代C++风格以及在实际开发中的使用——谈微软英库中文输入法开发经验

热门文章

  1. java闭锁_Java并发工具类(闭锁CountDownLatch)
  2. 视频教程-项目实战:支持以太坊的MySQL管理系统视频课程-区块链
  3. vi ~/.bashrc如何保存退出
  4. PHP 将大量数据导出到 Excel 的方法
  5. S02_CH15_ AXI_OLED 实验
  6. 近期频现NFT新型钓鱼诈骗,用户收到不明OpenSea”高价“空投
  7. Acwing活动打卡做题数统计爬虫
  8. java我的世界_我的世界Java版
  9. 【模块间的通讯】数据接口及通讯代理系统架构
  10. 易度,企业中的蓝胖子