CSS 实现梯形tabs切换

在这里插入图片描述
在这里插入图片描述
实现这种tab切换

<div class="tabs">
      <div class="tabs_item" v-for="it in 2" :key="it" :class="{active:it==checkNum}" @click="checkNum = it">
        {{it}}
      </div>
    </div>
  checkNum:1,
.tabs {
  display: flex;
  width: 200px;
  border-radius: 10px;
  gap: 20px;
  height: 40px;
  background-color: #f0f4f8;
  .tabs_item {
    display: flex;
    flex:  0 0 90px;
    justify-content: center;
    align-items: center;
    position: relative;
    &.active {
      color: #f0f4f8;
    }
    &:first-child {
      &.active {
        border-radius: 10px 0 0 10px;
        background-color: blue;
        &:before {
          content: '';
          position: absolute;
          right: -18px;
          top: 0;
          border-top: 40px solid blue;
          border-right: 18px solid transparent;
          border-left: 0 solid transparent;
          //border-bottom: 8px solid #f0f4f8;
        }
      }
    }
    &:last-child {
      &.active {
        border-radius: 0 10px 10px 0;
        background-color: blue;
        &:after {
          content: '';
          position: absolute;
          left: -18px;
          top: 0;
          border-right: 0 solid transparent;
          border-left: 18px solid transparent;
          border-bottom: 40px solid blue;
        }
      }
    }
  }
}

即可实现这种样式

u-tabs 可以通过控制 tab 激活状态和对应 pane 的显示状态来实现滑动切换。具体的实现步骤如下: 1. 在 HTML 中定义 tab 和 pane 的结构,如下所示: ``` <div class="u-tabs"> <div class="u-tabs__header"> <div class="u-tabs__item active">Tab 1</div> <div class="u-tabs__item">Tab 2</div> <div class="u-tabs__item">Tab 3</div> </div> <div class="u-tabs__content"> <div class="u-tabs__pane active">Content 1</div> <div class="u-tabs__pane">Content 2</div> <div class="u-tabs__pane">Content 3</div> </div> </div> ``` 2. 使用 CSS 对 tab 和 pane 进行样式设置,如下所示: ``` .u-tabs__header { display: flex; border-bottom: 1px solid #ccc; } .u-tabs__item { padding: 10px; cursor: pointer; } .u-tabs__item.active { background-color: #f5f5f5; } .u-tabs__pane { display: none; } .u-tabs__pane.active { display: block; } ``` 3. 使用 JavaScript 代码对 tab 进行事件监听,并控制对应的 pane 显示和隐藏,如下所示: ``` const tabs = document.querySelectorAll('.u-tabs__item'); const panes = document.querySelectorAll('.u-tabs__pane'); tabs.forEach((tab, index) => { tab.addEventListener('click', () => { // 切换激活状态 tabs.forEach((t) => t.classList.remove('active')); tab.classList.add('active'); // 切换显示状态 panes.forEach((pane) => pane.classList.remove('active')); panes[index].classList.add('active'); }); }); ``` 以上就是使用 u-tabs 实现滑动切换的基本步骤。需要注意的是,如果需要实现滑动效果,还需要使用一些 CSS 技巧和 JavaScript 动画库来实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

薄荷街的兔比先生。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值