tabs自定义样式

在这里插入图片描述

使用el-tabs 去修改样式的话比较麻烦,索性直接用div来制作。

<div class="contain">
    <div class="tab_wrap">
      <div :class="['skew', 'first', active == '1' ? 'isActive': '']" @click="tabClick(1)">
        <span class="tabs__name">需求列表</span>
      </div>
      <div :class="['skew', 'second',active == '2' ? 'isActive': '']" @click="tabClick(2)">
        <span class="tabs__name">测试任务</span>
      </div>
      <div :class="['skew', 'third',active == '3' ? 'isActive': '']" @click="tabClick(3)">
        <span class="tabs__name">缺陷查看</span>
      </div>
    </div>
  </div>
<script>
export default {
  data() {
    return {
      active: '1'
    }
  },
  methods: {
    tabClick(tab) {
      this.active = tab + ''
    }
  }
}
</script>

**

  • css有点烂 轻喷,先凑合实现吧。重复的样式代码太多了,没做处理。如果有同学优化了的可以打在评论区哦

**

<style lang="scss">
.contain {
  width: 100%;
  height: 100%;
  padding: 24px;
}
.tab_wrap {
  display: flex;
  border-bottom: 1px solid #ccc;
}
.skew {
  position: relative;
  width: 120px;
  height: 40px;
}
.first::before {
  content: "";
  position: absolute;
  top: 0;
  right: 20px;
  width: 100px;
  height: 40px;
  border-radius: 10px 10px 0 0;
  background: #e0e8f6;
}
.first::after {
  content: "";
  position: absolute;
  top: 0;
  left: 6px;
  right: 0;
  bottom: 0;
  border-radius: 10px 10px 0 0;
  background: #e0e8f6;
  transform: skewX(15deg);
}
.first {
  &.isActive::before {
    content: "";
    position: absolute;
    top: 0;
    right: 20px;
    width: 100px;
    height: 40px;
    border-top: 1px solid #ccc;
    border-left: 1px solid #ccc;
    border-radius: 10px 0;
    background: #fff;
  }
  &.isActive::after {
    content: "";
    position: absolute;
    top: 0;
    left: 6px;
    right: 0;
    bottom: 0;
    border-top: 1px solid #ccc;
    border-radius: 10px 10px 0 0;
    background: #fff;
    transform: skewX(15deg);
  }
}

.second::before {
  content: "";
  position: absolute;
  top: 0;
  right: 13px;
  width: 100px;
  height: 40px;
  border-radius: 10px 10px 0 0;
  background: #e0e8f6;
}
.second::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 10px 10px 0 0;
  background: #e0e8f6;
  transform: skewX(15deg);
}
.second {
  &.isActive::before {
    content: "";
    position: absolute;
    top: 0;
    right: 30px;
    width: 100px;
    height: 40px;
    border-top: 1px solid #ccc;
    border-radius: 10px 10px 0 0;
    background: #fff !important;
    transform: skewX(-10deg);
  }
  &.isActive::after {
    content: "";
    position: absolute;
    top: 0;
    left: -4px;
    right: 0;
    bottom: 0;
    border-top: 1px solid #ccc;
    border-radius: 10px;
    background: #fff !important;
    transform: skewX(15deg);
  }
}

.third::before {
  content: "";
  position: absolute;
  top: 0;
  right: -13px;
  width: 100px;
  height: 40px;
  border-radius: 10px 10px 0 0;
  background: #a8c7fa;
}
.third::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 10px 10px 0 0;
  background: #a8c7fa;
  transform: skewX(15deg);
}
.third {
  &.isActive::before {
    content: "";
    position: absolute;
    top: 0;
    right: -13px;
    width: 100px;
    height: 40px;
    border-top: 1px solid #ccc;
    border-right: 1px solid #ccc;
    border-radius: 10px 10px 0 0;
    background: #fff;
  }
  &.isActive::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-top: 1px solid #ccc;
    border-radius: 10px 0 0 0;
    background: #fff;
    transform: skewX(15deg);
  }
}
.tabs__name {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  font-size: 14px;
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/484108.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTTP --- 下

目录 1. HTTP请求方式 1.1. HTML 表单 1.2. GET && POST方法 1.2.1. 用 GET 方法提交表单数据 1.2.2. 用 POST 方法提交表单数据 1.2.3. 总结 1.3. 其他方法 2. HTTP的状态码 2.1. 重定向 2.1.1. 临时重定向 && 永久重定向 2.1.2. 302 &&…

3 Spring之DI详解

5&#xff0c;DI相关内容 前面我们已经完成了bean相关操作的讲解&#xff0c;接下来就进入第二个大的模块DI依赖注入&#xff0c;首先来介绍下Spring中有哪些注入方式? 我们先来思考 向一个类中传递数据的方式有几种? 普通方法(set方法)构造方法 依赖注入描述了在容器中建…

19.严丝合缝的文明——模板方法模式详解

“项目评审的节点又快到了&#xff0c;PPT你写了没&#xff1f;” “Oops&#xff0c;忘了&#xff0c;有模板没&#xff1f;给我一份” 概述 模板&#xff0c;一个频繁出现在办公室各类角色口中的词&#xff0c;它通常意味着统一、高效、经验和优质。各项汇报因为PPT的模板变…

trinus 3d打印机安装调试到成功打印3-没有热床模型脱落底床不粘模型翘边错位

由于没有自带热肠&#xff0c;改装的话需要额外购买配套的热床。但是如果手头没有的话&#xff0c;那只能使用原厂赠送的两张美文纸。美纹纸很容易用破&#xff0c;尤其是喷头可能会划破。另外拆模型的时候会引起气泡。 于是翘边和模型脱落就成了家常便饭。 这些问题的根源都在…

C#学习笔记1:C#基本文件结构与语法

现在开始我的C#学习之路吧&#xff0c;这也许不适合0编程基础的人看&#xff0c;因为我会C语言了&#xff0c;笔记做的可能有思维上的跳跃&#xff0c;如果0基础可能会觉得有些地方转折得莫名奇妙&#xff0c;但我的学习笔记实操还是比较多的&#xff0c;基本都是真实运行程序结…

七.(1)堆排序--前传

目录 七.(1)堆排序--前传 20-堆排序前传-树的基础知识 根节点 叶子节点 树的深度(高度) 树的 度 孩子节点/父亲节点 子树 21.堆排序前传-二叉树的基础知识 二叉树的存储方式: 22-堆排序前传-堆和堆的向下调整 什么是堆? 堆的向下调整性质 23-堆排序的过程演示 七…

Android Preference简单介绍

Android Preference简单介绍 文章目录 Android Preference简单介绍一、前言二、Preference 简单介绍二、PreferenceScreen和SwitchPreference 简单示例2、相关demo代码示例&#xff08;1&#xff09;SettingsActivity.Java&#xff08;2&#xff09;layout\settings_activity.x…

redis复习笔记07(小滴课堂)

在线教育-天热销视频榜单实战-List数据结构设计 我们先随机获取整个列表的内容。 我们模拟一个去添加数据的接口&#xff1a; 运行&#xff1a; 我们可以看到这里的数据。 我们现在启动我们的应用和controller&#xff1a; 就可以查到我们的数据了。 我们进行人工操作位&…

基于unbantu的nginx的配置

目录 前言: 1.安装nginx并进行测试 1.1使用nginx -v 命令查看版本 1.2开启服务 查看端口 1.3测试 2.nginx的静态资源访问配置 2.1创建静态资源存放的目录 2.2写入目录中测试文件对应的内容 2.3修改配置文件 2.4 测试 3.虚拟主机配置 3.1创建目录 3.2写入测试…

PPP MP配置

一.添加接口 每个路由器中添加2SA接口 二.配置IP地址 1.在r2和r3上创建MP [r2]int Mp-group 0/0/0 [r2-Mp-group0/0/0] [r3]int Mp-group 0/0/0 [r3-Mp-group0/0/0] 2.把1中上的接口加入上一步创建的MP [R2]int Serial 3/0/1 [R2-Serial3/0/1]ppp mp Mp-group 0/0/0 [R2]i…

Learn OpenGL 24 点光源阴影

点光源阴影 上个教程我们学到了如何使用阴影映射技术创建动态阴影。效果不错&#xff0c;但它只适合定向光&#xff0c;因为阴影只是在单一定向光源下生成的。所以它也叫定向阴影映射&#xff0c;深度&#xff08;阴影&#xff09;贴图生成自定向光的视角。 本节我们的焦点是…

整数和浮点数分别在内存中的存储

目录 一、整数在内存中的存储二、浮点数在内存中的存储2.1存储2.2取2.2.1 E不全为0或者不全为12.2.2 E全为02.2.3 E全为1 三、题目解析 一、整数在内存中的存储 对于整形来说&#xff1a;数据存放内存中其实存放的是补码。 原因在于&#xff0c;使用补码&#xff0c;可以将符号…

Redis 6和7:探索新版本中的新特性

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! Redis&#xff0c;作为开源的内存数据结构存储系统&#xff0c;以其高性能、丰富的数据结构和广泛的应用场景而深受开发者喜爱。随…

面试题:Java中的类加载器

1. 什么是类加载器&#xff0c;类加载器有哪些? 要想理解类加载器的话&#xff0c;务必要先清楚对于一个Java文件&#xff0c;它从编译到执行的整个过程。 类加载器&#xff1a;用于装载字节码文件(.class文件)运行时数据区&#xff1a;用于分配存储空间执行引擎&#xff1a;…

Zabbix学习(二)

上一篇文章中&#xff0c;我们搭建完了zabbix服务端和客户端&#xff0c;这一章介绍下具体的使用&#xff0c;下面先介绍几个概念。 主机&#xff1a;要监控的主机监控项&#xff1a;你要监控cpu还是内存触发器&#xff1a;当cpu使用率超过多少报警动作&#xff1a;cpu报警了&…

Python安装手册

Python安装手册 一、基本说明二、版本对比三、Python解析器 一、基本说明 Python是一种跨平台的计算机程序设计语⾔。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语⾔。 最初被设计用于编写⾃动化脚本Shell&#xff08;适用于Linux操作系统&#xff09;&am…

设计模式|工厂模式

文章目录 1. 工厂模式的三种实现2. 简单工厂模式和工厂方法模式示例3. 抽象工厂模式示例4. 工厂模式与多态的关系5. 工程模式与策略模式的关系6. 面试中可能遇到的问题6.1 **工厂模式的概念是什么&#xff1f;**6.2 **工厂模式解决了什么问题&#xff1f;**6.3 **工厂模式的优点…

【Objective -- C】—— GCD(1)(Grand Central Dispatch)

【Objective -- C】—— GCD&#xff08;1&#xff09;&#xff08;Grand Central Dispatch&#xff09; GCD1. 什么是GCD2.多线程编程线程多线程的理解多线程的优点 3.任务和队列任务同步执行和异步执行 队列串行队列和并发队列 GCD的API1.Dispatch QueueDispatch Queue的分类…

客户管理系统功能大揭秘!助您了解其核心作用!

早在2019年&#xff0c;中国已经快速迈向服务经济时代 客户管理一直是各行业管理者关心的话题&#xff0c;在数字化时代&#xff0c;如何做好客户管理&#xff1f;很多人说可以尝试客户管理系统&#xff0c;那么今天大家就一窥客户管理系统的庐山真面目。 一、什么是客户管理系…

复试编程练习题(from 牛客网)

考试时候可能没有VS,但codeblocks是必备的。 下面总结一些常用的快捷键。 CtrlEnter&#xff1a;光标移至行尾ShiftEnter&#xff1a;光标跳到下一行CtrlD&#xff1a;直接复制粘贴当前行CtrlL&#xff1a;删除当前行F9&#xff1a;buildrun。CtrlShiftC&#xff1a;注释掉当…