纯css+js写的一个简单的tab标签页带样式

下面是详细的攻略:

1. 简介

在网页设计中,常见的需求是需要通过标签页来展示内容,这时候就需要用到一个叫做“Tab标签页”的组件。Tab标签页可以让我们在有限的空间内,方便地切换内容,增加页面的互动性,使页面看起来更加充实。

本文将介绍一种纯CSS+JS的方式来实现一个简单的Tab标签页,并带有基本的样式,让菜鸟级别的前端设计师也能够轻松上手。

2. 实现步骤

2.1 HTML代码结构

首先,我们需要创建一个基本的HTML结构。通过以下代码创建一个Tab标签页布局:

<div class="tab">
  <button class="tablinks active" onclick="openTab(event, 'tab1')">Tab 1</button>
  <button class="tablinks" onclick="openTab(event, 'tab2')">Tab 2</button>
  <button class="tablinks" onclick="openTab(event, 'tab3')">Tab 3</button>

  <div id="tab1" class="tabcontent">
    <h3>Tab 1</h3>
    <p>Content for Tab 1</p>
  </div>

  <div id="tab2" class="tabcontent">
    <h3>Tab 2</h3>
    <p>Content for Tab 2</p>
  </div>

  <div id="tab3" class="tabcontent">
    <h3>Tab 3</h3>
    <p>Content for Tab 3</p>
  </div>
</div>

以上代码中包含三个Tab按钮和三个内容区域。其中,.tab类指整个Tab标签页区域,.tablinks类用于Tab按钮,.tabcontent类用于内容区域。每个内容区域通过一个唯一的id来标识。在这个例子中,我们创建了三个内容区域,分别对应三个Tab按钮。

2.2 CSS样式

接下来,我们使用CSS样式来设计我们的Tab标签页。通过以下代码设置样式:

/* 关闭按钮边界 */
* {
  box-sizing: border-box;
}

.tab {
  border: 1px solid #ccc;
  overflow: hidden;
  background-color: #f1f1f1;
}

.tab button {
  background-color: inherit;
  border: none;
  outline: none;
  cursor: pointer;
  padding: 14px 16px;
  transition: 0.3s;
}

.tab button:hover {
  background-color: #ddd;
}

.tab button.active {
  background-color: #ccc;
}

.tabcontent {
  display: none;
  padding: 6px 12px;
  border: 1px solid #ccc;
  border-top: none;
  background-color: white;
}

上述代码中,我们为Tab标签页的按钮、内容区域、整个Tab区域等设置了样式,包括了背景色、边框、内外边距、鼠标指针等。

其中,.tab button.active指的是Tab按钮处于激活状态时的样式,.tabcontent指的是内容区域的样式。通过设置.tabcontentdisplay属性为none,我们在一开始隐藏了所有的内容区域。

2.3 JavaScript脚本

最后,我们需要使用JavaScript来完成一些动态效果(如,点击切换Tab时,激活相应的内容区域)。通过以下代码实现:

function openTab(evt, tabName) {
  var i, tabcontent, tablinks;

  // 隐藏所有内容区域
  tabcontent = document.getElementsByClassName("tabcontent");
  for (i = 0; i < tabcontent.length; i++) {
    tabcontent[i].style.display = "none";
  }

  // 关闭所有Tab按钮的激活状态
  tablinks = document.getElementsByClassName("tablinks");
  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";
}

以上代码中,openTab()函数是用来实现Tab切换的。当点击一个Tab按钮时,它会隐藏其他所有内容区域,并关闭其他所有Tab按钮的激活状态,然后激活当前Tab按钮和相应的内容区域。

3. 示例

为了更好的向读者展示上述代码的效果,我们提供两个示例。第一个示例展示了我们上述实现代码的示例演示,第二个示例展示了我们如何自定义Tab标签页的样式。

示例1:

通过以下链接查看我们实现的Tab标签页效果:
https://codepen.io/Songhui/pen/bjrRyp

示例2:

通过以下链接查看如何自定义Tab标签页的样式:
https://codepen.io/Songhui/pen/maByXp

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:纯css+js写的一个简单的tab标签页带样式 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • Java之OutputStreamWriter流案例详解

    Java之OutputStreamWriter流案例详解 在Java中,OutputStreamWriter是用于在写入操作时将输出流发送到指定字符编码的字符输出流。本文将详细讲解如何使用OutputStreamWriter流进行写操作。 步骤 创建FileOutputStream类实例,指定写入文件路径。 创建OutputStreamWriter实例,指定…

    Java 2023年5月20日
    00
  • java el简介及用法

    Java EL 简介及用法 Java Expression Language(Java EL)是用于在Java Web应用程序中计算表达式的语言。Java EL 可以在页面中引用或调用Java Bean中的属性、方法等,并能在JSP、JSF、Struts、Spring等框架中使用。 语法 Java EL 对象名称可以分为两部分:对象名称和对象属性。对象名称是…

    Java 2023年6月15日
    00
  • 什么是 JVM 参数?

    以下是关于 JVM 参数的完整使用攻略: 什么是 JVM 参数? JVM 参数是指在启动 Java 虚拟机时,通过命令行或配置文件等方式传递给 JVM 的一些参数。这些参数可以用来控制 JVM 的行为,例如设置堆大小、垃圾回收器类型、线程数等。JVM 参数可以分为标准参数和非标准参数两种。 标准参数是由 JVM 官方定义的参数,用于控制 JVM 的基本行为,…

    Java 2023年5月12日
    00
  • Java Kafka实现延迟队列的示例代码

    下面我来详细讲解Java Kafka实现延迟队列的示例代码的完整攻略。 什么是延迟队列 延迟队列是一种可以在一段时间之后才能被消费者消费的消息队列。它通常会使用时间优先级来控制消息的消费顺序,这种机制被称为TTL(Time To Live)。常见的应用场景是延迟发送提醒、定时任务等。 实现延迟队列的方式 实现延迟队列的方式有很多种,Kafka也提供了两种实现…

    Java 2023年6月2日
    00
  • FCKeditor2.3 For PHP 详细整理的使用参考

    FCKeditor2.3 For PHP 详细整理的使用参考 FCKeditor是一款用于Web浏览器的HTML文本编辑器。FCKeditor2.3是FCKeditor的一个旧版本,针对PHP进行了整理和优化,可以方便地在PHP网站中使用。接下来,我们将详细介绍如何使用FCKeditor2.3。 安装FCKeditor2.3 你可以从FCKeditor官网下…

    Java 2023年6月15日
    00
  • Spring mvc Controller和RestFul原理解析

    下面是关于Spring MVC Controller和RestFul的原理解析,包含两个示例说明。 Spring MVC Controller和RestFul原理解析 Spring MVC是一个流行的Java Web框架,它可以帮助我们快速构建Web应用程序。在Spring MVC中,Controller是一个重要的组件,它用于处理请求并返回响应。在本文中,…

    Java 2023年5月17日
    00
  • springboot集成dubbo注解版的示例代码

    下面我来详细讲解“springboot集成dubbo注解版的示例代码”的完整攻略,过程中我将会给出两条示例代码。 概述 Dubbo是一个高性能、轻量级的开源Java框架,目的是为了提供完整的RPC框架,包括服务注销和发现,以及协议、负载均衡、路由、监控等能力。SpringBoot是一个基于Spring的快速开发的框架,它使Spring应用的开发变得容易。本教…

    Java 2023年5月19日
    00
  • Java Mybatis框架由浅入深全解析中篇

    Java Mybatis框架由浅入深全解析中篇 本文将从Mybatis框架的基本配置、映射器、插件、缓存、批处理等方面进行全面介绍,以帮助读者更好地理解和使用Mybatis框架。 基本配置 Mybatis框架的基本配置包括数据库信息、连接池、日志等。这些配置都可以在mybatis-config.xml中进行设置。下面是一个基本的mybatis-config.…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部