当前位置: 首页 > news >正文

css梯形tab

效果:

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Tab 示例</title>
    <style>
        /* 定义 CSS 变量 */
        :root {
            --tab-width: 200px;
            --tab-height: 50px;
            --tab-radius: 10px;
            --tab-bg: #EFF6FF;
            --tab-active-bg: gold;
            --tab-corner-size: 10px;
        }

        /* 基础样式 */
        .box {
            padding: 50px 300px;
            text-align: center;
            display: flex;
        }

        /* Tab 通用样式 */
        .tab {
            width: var(--tab-width);
            height: var(--tab-height);
            background-color: var(--tab-bg);
            position: relative;
            border-radius: var(--tab-radius) var(--tab-radius) 0 0;
            transform-origin: center bottom;
            transform: perspective(10px) rotateX(10deg);
            cursor: pointer; /* 添加鼠标指针样式 */
        }

        /* Tab 伪元素样式 */
        .tab::before,
        .tab::after {
            content: "";
            position: absolute;
            bottom: 0;
            width: var(--tab-corner-size);
            height: var(--tab-corner-size);
            background: var(--tab-bg);
        }

        .tab::before {
            left: calc(-1 * var(--tab-corner-size));
            background: radial-gradient(circle at 0 0, transparent var(--tab-corner-size), var(--tab-bg) var(--tab-corner-size));
        }

        .tab::after {
            right: calc(-1 * var(--tab-corner-size));
            background: radial-gradient(circle at var(--tab-corner-size) 0, transparent var(--tab-corner-size), var(--tab-bg) var(--tab-corner-size));
        }

        /* 第二个 Tab 的特殊样式 */
        .tab2 {
            top: -26px;
            margin-left: -50px;
            transform: perspective(10px) rotateX(170deg);
        }

        /* 激活状态的 Tab 样式 */
        .active {
            background-color: var(--tab-active-bg);
        }

        .active::before {
            background: radial-gradient(circle at 0 0, transparent var(--tab-corner-size), var(--tab-active-bg) var(--tab-corner-size));
        }

        .active::after {
            background: radial-gradient(circle at var(--tab-corner-size) 0, transparent var(--tab-corner-size), var(--tab-active-bg) var(--tab-corner-size));
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="tab tab1 active"></div>
        <div class="tab tab2"></div>
    </div>

    <script>
        const tabs = document.querySelectorAll(".tab");
        tabs.forEach((tab) => {
            tab.addEventListener("click", () => {
                tabs.forEach((t) => t.classList.remove("active"));
                tab.classList.add("active");
            });
        });
    </script>
</body>
</html>

相关文章:

  • Java学习笔记-文件命名
  • 华为:Wireshark的OSPF抓包分析过程
  • 如何使用SSH命令安全连接并转发端口到远程服务器
  • K8S学习之基础八:k8s中pod的状态和重启策略
  • 数据库索引的作用:提升数据检索效率的关键
  • 如何使用 LLM 生成的术语自动在搜索应用程序上构建 autocomplete 功能
  • 算法进阶——二分
  • 在线教育网站项目第二步 :学习roncoo-education,服务器为ubuntu22.04.05
  • MQ保证消息的顺序性
  • 【VUE】第一期——初使用、基本语法
  • 【已解决】docker安装、换源及使用 docker: Get https://registry-1.docker.io/v2/: net/http: request canceled
  • 以太网通讯
  • Spring(四)容器-先注册后注入
  • 君正SOC芯片 T31X智能视频应用处理器 高集成度 超低功耗 提供软硬件资料+样品测试
  • mapbox高阶,结合threejs(threebox)添加三维球体
  • 鸿蒙Next网络请求~上传文件pdf
  • 机器学习-随机森林解析
  • 尚硅谷爬虫note15
  • Linux(Centos 7.6)命令详解:vi
  • 整除分块 2025牛客寒假算法基础集训营3G
  • 镇江个人网站制作/酒泉网站seo
  • web网站开发技术/国际军事新闻
  • 个人网站的制作步骤/成人本科报考官网
  • 网站内套网站代码/网站策划书
  • 百度网站是怎么做的/app拉新任务平台
  • 对外网站建设情况汇报/查收录