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

html实现TAB选项卡切换

<!DOCTYPE html>  
<html>  
<head>  
    <title>选项卡示例</title>  
    <style>  
        .tabs {  
            overflow: hidden; /* 防止选项卡溢出容器 */  
            border: 1px solid #ccc;  
            background-color: #f1f1f1;  
        }  
  
        .tab-links {  
            margin: 0;  
            padding: 0;  
            list-style: none;  
        }  
  
        .tablink {  
            background-color: inherit; /* 继承.tabs的背景色 */  
            float: left; /* 使选项卡并排显示 */  
            border: none;  
            outline: none;  
            cursor: pointer;  
            padding: 14px 16px;  
            transition: background-color 0.3s; /* 平滑过渡效果 */  
            width: 50%; /* 两个选项卡各占50%宽度 */  
            text-align: center; /* 文本居中 */  
        }  
  
        .tablink:hover {  
            background-color: #ddd; /* 鼠标悬停时变色 */  
        }  
  
        .tablink.active {  
            background-color: #4CAF50; /* 选中时变色为蓝色(这里改为绿色以示例,因为纯蓝色可能不易读) */  
            color: white; /* 文本颜色变为白色 */  
        }  
  
        .tabcontent {  
            display: none;  
            padding: 20px;  
            border: 1px solid #ccc;  
            border-top: none;  
        }  
  
        .tabcontent.active {  
            display: block;  
        }  
    </style>  
</head>  
<body>  
  
<div class="tabs">  
    <ul class="tab-links">  
        <li><button class="tablink active" onclick="openTab(event, 'Tab1')">Tab 1</button></li>  
        <li><button class="tablink" onclick="openTab(event, 'Tab2')">Tab 2</button></li>  
    </ul>  
  
    <div id="Tab1" class="tabcontent active">  
        <h3>Tab 1 内容</h3>  
        <p>这是Tab 1的文本内容。</p>  
    </div>  
  
    <div id="Tab2" class="tabcontent">  
        <h3>Tab 2 内容</h3>  
        <p>这是Tab 2的文本内容。</p>  
    </div>  
</div>  
  
<script>  
    function openTab(evt, tabName) {  
        var i, tabcontent, tablinks;  
        tabcontent = document.getElementsByClassName("tabcontent");  
        for (i = 0; i < tabcontent.length; i++) {  
            tabcontent[i].style.display = "none";  
        }  
  
        tablinks = document.getElementsByClassName("tablink");  
        for (i = 0; i < tablinks.length; i++) {  
            tablinks[i].className = tablinks[i].className.replace(" active", "");  
        }  
  
        document.getElementById(tabName).style.display = "block";  
        evt.currentTarget.className += " active";  
    }  
</script>  
  
</body>  
</html>

在这里插入图片描述

在这里插入图片描述


http://www.kler.cn/news/315921.html

相关文章:

  • LLMs之OCR:llm_aided_ocr(基于LLM辅助的OCR项目)的简介、安装和使用方法、案例应用之详细攻略
  • Python之一些列表的练习题
  • Spring Boot入门:构建你的首个Spring Boot应用
  • Mybatis-plus进阶篇(二)
  • 【JUC并发编程系列】深入理解Java并发机制:线程局部变量的奥秘与最佳实践(五、ThreadLocal原理、对象之间的引用)
  • 数据结构 ——— 常见的时间复杂度计算例题(最终篇)
  • Linux驱动开发 ——架构体系
  • 求最大公约数
  • CSS 布局三大样式简单学习
  • 【解密 Kotlin 扩展函数】命名参数和默认值(十三)
  • 【深入Java枚举类:不仅仅是常量的容器】
  • 数据结构——串的模式匹配算法(BF算法和KMP算法)
  • 设计模式-装饰者模式
  • VMware虚拟机经常性卡死,打开运行一段时间后卡死,CPU占比增至100%
  • 电脑网络怎么弄动态ip :步骤详解与优势探讨
  • Tomcat系列漏洞复现
  • AI时代最好的编程语言应该选择谁?
  • vue h5 蓝牙连接 webBluetooth API
  • MySQL 中删除重复的数据并只保留一条
  • C#实现指南:将文件夹与exe合并为一个exe
  • vscode 环境搭建
  • 神经网络修剪实战
  • ubuntu安装docker compose
  • 解决 TortoiseGitPlink Fatal Error:深入解析
  • JS巧用.padStart()|.padEnd()方法用另一个字符串填充当前字符串
  • 9月16日笔记
  • 工作笔记:Vue 3 中使用 vue-router 进行导航与监听路由变化
  • 关于 Qt运行加载内存较大崩溃添加扩大运行内存 的解决方法
  • 使用Stream实现事件流
  • Django一分钟:借助Django的认证系统快速实现RBAC权限校验以及Session会话