使用css伪类制作tab切换组件的底部样式

<template>
  <div class="tab">
    <div class="item" v-for="(item,index) in tabList"
      :class="index == actIndexpage?'act':''" @click="tabClick(index)" :key="index">
        <span>{{item.name}}</span>
    </div>
  </div>
</template>

<script>
export default {
  data () {
    return {
      actIndexpage:0,
    }
  },
  props:{
    tabList:{
      type:Array
    },
    showBadge:{
      type:Boolean,
      default:false
    },
    actIndex:{
      type:[Number,String],
      default:0
    }
  },
  mounted(){
    this.actIndexpage = JSON.parse(JSON.stringify(this.actIndex))
  },
  methods: {
    tabClick(index){
      this.actIndexpage = index
      this.$emit('tabClick',index)
    }
  }
}
</script>

<style lang="less" scoped>
.tab {
  display: flex;
  background-color: #fff;
  padding: 13px 5px;
  margin: 10px 0;
  .item{
    margin-left: 15px;
    font-size: 14px;
    width: 80px;
    text-align: center;
    color: #999999;
    cursor: pointer;
  }
  .act{
    color: #262626;
    position: relative;
    font-weight: 500;
  }
  .act::after{
    content: '';
    width: 20px;
    height: 4px;
    border-radius: 2px;
    background-color: #FFD44A;
    position: absolute;
    bottom: -15px;
    left: 30px;
  }
}
</style>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以使用CSS编写一个基本的Tab切换效果,以下是一个简单的示例代码: HTML代码: ```html <div class="tab"> <button class="tablinks" onclick="openTab(event, 'tab1')">标签1</button> <button class="tablinks" onclick="openTab(event, 'tab2')">标签2</button> <button class="tablinks" onclick="openTab(event, 'tab3')">标签3</button> </div> <div id="tab1" class="tabcontent"> <h3>标签1</h3> <p>这里是标签1的内容。</p> </div> <div id="tab2" class="tabcontent"> <h3>标签2</h3> <p>这里是标签2的内容。</p> </div> <div id="tab3" class="tabcontent"> <h3>标签3</h3> <p>这里是标签3的内容。</p> </div> ``` CSS代码: ```css /* 隐藏所有标签内容 */ .tabcontent { display: none; } /* 标签按钮样式 */ .tab button { background-color: #fff; border: none; color: #000; cursor: pointer; padding: 8px 16px; } /* 激活标签按钮样式 */ .tab button.active { background-color: #ccc; } /* 显示当前标签内容 */ .tabcontent.show { display: block; } ``` JavaScript代码: ```javascript // 默认打开第一个标签 document.getElementById("tab1").classList.add("show"); function openTab(event, tabName) { // 隐藏所有标签内容 var i, tabcontent, tablinks; tabcontent = document.getElementsByClassName("tabcontent"); for (i = 0; i < tabcontent.length; i++) { tabcontent[i].classList.remove("show"); } // 取消所有标签按钮激活状态 tablinks = document.getElementsByClassName("tablinks"); for (i = 0; i < tablinks.length; i++) { tablinks[i].classList.remove("active"); } // 显示当前标签内容 document.getElementById(tabName).classList.add("show"); // 激活当前标签按钮 event.currentTarget.classList.add("active"); } ``` 在此示例中,我们首先定义了一些HTML元素,其中包括用于切换标签的按钮以及每个标签对应的内容。然后,我们使用CSS来定义标签按钮和标签内容的样式,并使用JavaScript来处理标签切换逻辑。最后,当用户单击标签按钮时,我们调用openTab函数来显示当前标签内容并激活当前标签按钮。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

染指悲剧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值