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

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>


http://www.kler.cn/a/574513.html

相关文章:

  • SpringMVC请求映射:@RequestMapping的高级用法
  • js 全局的 isNaN和Number.isNaN的区别
  • 深度学习模型组件-RevNorm-可逆归一化(Reversible Normalization)
  • 批量修改或设置 Word 标题、主题、标记、作者、总编辑时间等元数据
  • 蓝桥杯C组真题——巧克力
  • 【3.2-3.8学习周报】
  • MacOS Big Sur 11 新机安装brew wget python3.12 exo
  • Dockerfile概述及编辑
  • 【Oracle学习笔记】2.数据表
  • 2025-03-06 学习记录--C/C++-PTA 习题6-6 使用函数输出一个整数的逆序数
  • 深度解码!清华大学第六弹《AIGC发展研究3.0版》
  • 网络协议:HTTP协议
  • 23中设计模式之观察者模式
  • 计算机基础:二进制基础05,八进制简介
  • 如何在WPS中接入DeepSeek并使用OfficeAI助手(超细!成功版本)
  • 【硬件IIC与软件IIC在程序实现上的核心区别】结合STM32F103C8T6标准库代码进行对比分析
  • EasyDSS视频推拉流/直播点播平台:Mysql数据库接口报错502处理方法
  • Python 高级图表绘制秘籍: Matplotlib 与 Seaborn 热力图、箱线图实战
  • 初探 Mercury:首个商业级扩散大语言模型的初步观察与体验
  • 绝美焦糖暖色调复古风景画面Lr调色教程,手机滤镜PS+Lightroom预设下载!