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

yizhihongxing

下面是详细的攻略:

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日

相关文章

  • SpringBoot多种自定义错误页面方式小结

    首先我们来介绍一下SpringBoot的错误页面。SpringBoot的错误页面一般可以分为以下两种: 默认错误页面 SpringBoot自带了默认的错误页面,在出现错误时会自动跳转到该页面。默认的错误页面包含了错误的状态码、错误信息和错误堆栈等信息。如果你没有设置自定义的错误页面,那么就会默认跳转到该页面。 自定义错误页面 SpringBoot还支持开发者…

    Java 2023年5月25日
    00
  • java中gc算法实例用法

    Java中GC算法实例用法攻略 什么是Java中的垃圾回收(GC) Java是一种自带垃圾回收机制的编程语言。当Java程序运行时,分配给该程序的内存空间与操作系统可能分配给其他相应程序的内存空间相对独立。为了保证Java应用程序的正常运行,需要对Java程序分配和释放内存进行管理,程序中不再被引用的对象将会被垃圾回收机制回收。 Java中的垃圾回收算法 在…

    Java 2023年5月19日
    00
  • Java最常用的6个简单的计算题

    Java最常用的6个简单的计算题 作为Java语言的入门者和初学者,掌握一些最基本的计算题是非常重要的。以下是Java中最常用的6个简单的计算题及其解答攻略。 1. 加法 加法是一种最基本的数学运算,其符号为+。在Java中,可以使用+运算符进行两个数的加法运算。例如: int a = 2; int b = 3; int c = a + b; System.…

    Java 2023年5月26日
    00
  • 使用JDBC连接Mysql数据库会出现的问题总结

    使用JDBC连接Mysql数据库会出现的问题总结 JDBC是Java针对各种关系型数据库提供的一种标准的接口,可以大大简化Java程序连接数据库的开发工作。但是,在使用JDBC连接Mysql数据库的过程中,常常会遇到一些问题。本篇攻略将会针对常见的问题进行总结,并给出相应的解决方案。 1. ClassNotFoundException 该异常通常在程序中出现…

    Java 2023年5月20日
    00
  • Spring Boot 应用的热部署配置方法

    Spring Boot应用的热部署配置方法 在开发Spring Boot应用程序时,我们需要频繁地修改代码并重新编译,这会浪费很多时间。为了提高开发效率,我们可以使用热部署来避免频繁的重启应用程序。本文将详细讲解如何在Spring Boot应用程序中配置热部署。 步骤一:添加依赖 我们需要在pom.xml文件中添加Spring Boot DevTools的依…

    Java 2023年5月15日
    00
  • SpringMVC+Mybatis实现的Mysql分页数据查询的示例

    接下来我将详细讲解“SpringMVC+Mybatis实现的Mysql分页数据查询的示例”的完整攻略,过程中将给出两条示例说明。 准备工作 在开始实现分页数据查询之前,需要确保以下几点: JDK版本在1.8及以上 Maven依赖管理工具 SpringMVC框架 Mybatis持久层框架 Mysql数据库 添加依赖 在Maven的pom.xml文件中添加Spr…

    Java 2023年6月15日
    00
  • Java字符编码解码的实现详解

    Java字符编码解码的实现详解 在Java编程中,字符编码解码是非常重要的一环。本文将详细介绍Java字符编码解码的过程以及常见的实现方式。 字符编码和解码的基本概念 字符编码:将一个字符转化为二进制数据的过程。 字符解码:将二进制数据转化为字符的过程。 在Java中,字符编码和解码都是通过Java标准库中的charset类来实现的。 Java字符编码和解码…

    Java 2023年5月19日
    00
  • java的Hibernate框架报错“UnknownProfileException”的原因和解决方法

    当使用Java的Hibernate框架时,可能会遇到“UnknownProfileException”错误。这个错误通常是由于以下原因之一引起的: 未知的配置文件:如果您的配置文件未知,则可能会出现此错误。在这种情况下,需要检查您的配置文件以解决此问题。 配置文件中的拼写错误:如果您的配置文件中存在拼写错误,则可能会出现此错误。在这种情况下,需要检查您的配置…

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