纯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日

相关文章

  • jpa介绍以及在spring boot中使用详解

    JPA介绍及在Spring Boot中使用详解 什么是JPA? JPA(Java Persistence API)是基于Java语言的ORM(Object-Relational Mapping)标准规范。它提供了一种简单的面向对象的方法在Java应用程序和关系型数据库之间进行数据持久化。 在Spring Boot中使用 Spring Boot使得在应用程序中…

    Java 2023年5月19日
    00
  • java代码规范review异常事故记录

    下面是“Java代码规范Review异常事故记录”攻略的详细解释: 1. 异常事故记录的意义 我们编写的代码中难免会有缺陷,尤其是在团队协同开发中,每个人编写风格和习惯可能都不一样,导致代码可读性和可维护性存在问题。为了解决这些问题,我们需要对代码进行review,发现问题并及时修复。而异常事故记录则是review的重要内容之一。它可以让我们对程序中的异常情…

    Java 2023年5月27日
    00
  • Struts2实现文件上传功能实例解析

    让我给你详细讲解一下“Struts2实现文件上传功能实例解析”的完整攻略。 1. 导入相关依赖 首先,我们需要在项目的pom.xml文件中导入相关依赖: <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileuplo…

    Java 2023年5月20日
    00
  • Java实现简单的模板渲染

    感谢您的提问!下面是关于Java实现简单的模板渲染的攻略: 什么是模板渲染? 模板渲染是指将预先定义好的模板文件中的数据和样式数据结合起来,生成最终的HTML文件或者其他文本格式的文件的过程。 如何实现模板渲染? 在Java中,我们可以通过使用模板引擎来实现模板渲染。一般来说,模板引擎需要支持一定的模板语言,可以方便我们在模板文件中嵌入变量、逻辑判断、循环、…

    Java 2023年5月18日
    00
  • 简单了解java函数式编码结构及优势

    简单了解Java函数式编码结构及优势 前言 在 Java 8 中,函数式编程成为了一个重大的特性。这项特性使得开发人员可以写出更具有简洁性、清晰性和可维护性的代码。在本篇攻略中,我们将简单了解 Java 函数式编码的结构和优势。 函数式编码结构 Lambda 表达式 Lambda 表达式是 Java 8 中最重要的一个特性,是一种简洁地表示函数的方法。它可以…

    Java 2023年5月20日
    00
  • java object 之clone方法全面解析

    Java对象之clone方法全面解析 简介 在Java中,如果使用赋值号将一个对象赋值给另外一个对象,那么这两个对象会共用同一份数据。而通过clone()方法可以创建一个新的对象,并复制原始对象数据到新对象中。 在本篇文章中,我们将全面解析clone()方法,介绍如何使用clone()方法拷贝一个Java对象。 clone() 方法说明 clone()方法是…

    Java 2023年5月26日
    00
  • java的主要特性学习总结

    关于Java的主要特性学习总结,我可以给出以下攻略: 学习Java主要特性的总结 1. Java的基本特性 Java的基本特性包括: 面向对象编程(OOP) 跨平台性(Platform independence) 简单性(Simplicity) 可扩展性(Scalability) 安全性(Security) 其中,面向对象编程的思想在Java中体现得淋漓尽致…

    Java 2023年5月19日
    00
  • Java中的Object类用法总结

    Java中的Object类用法总结 在Java中,每个类都是Object类的子类,因此Object类提供了一些通用方法可以用于任何对象,本文将总结Object类的用法。 Object类中的常用方法 equals() equals()方法用于比较两个对象的值是否相等,但需要注意的是,==运算符比较的是两个对象的引用是否相等,而不是值。 示例: String s…

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