Tabs

本文介绍如何使用HTML、JS与CSS实现多标签导航功能,包括使用setTab函数进行参数匹配、jQuery方法利用href属性进行参数配对,以及不同HTML结构的对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTML

<div id="tab">
	<ul id="tabs" class="clearfix"> 
		<li class="current" onclick="setTab(0)"><a href="#">TAB-1</a></li> 
		<li onclick="setTab(1)"><a href="#">TAB-2</a></li> 
		<li onclick="setTab(2)"><a href="#">TAB-3</a></li> 
	</ul>
	<ul id="contents">
	    <li class="current">Content-1</li>
		<li class="hide">Content-2</li>
		<li class="hide">Content-3</li>
	<ul>
</div>

JS

function setTab(n){
		    var tli = document.getElementById("tabs").getElementsByTagName("li");
			var cli = document.getElementById("contents").getElementsByTagName("li");
			
			for(var i=0;i<tli.length;i++){
			    tli[i].className=i==n?"current":"";
				cli[i].className=i==n?"current":"hide";
			}
			
		 }   

CSS

body {
	background: #FFF;
	color: #000;
	font: 62.5% "Lucida Grande", Verdana, Geneva, Helvetica, sans-serif;
	margin: 0;
	padding: 0;
}

ul{
    padding:0;
	margin:0;
	list-style:none;
}

li{
   padding:10px;
}

.clearfix:after {
		content: ".";
		display: block;
		height: 0;
		font-size: 0;
		clear: both;
		visibility: hidden;
		}
		 
.clearfix {
		zoom: 1;
}


#tab{
    width:600px;
	margin:100px auto;
}

#tabs li{
	float:left;
}

.current{
    background:#EEE;
	display:block;
}

.hide{
    display:none;
}

jQuery写法


    $(document).ready(function(){
		$("#contents > li").hide();
		$("#tabs li:first").addClass("current").show();
		$("#contents li:first").addClass("current").show();
		
		$("#tabs li").click(function(){
		   $("#contents > li").hide();
		   $("#tabs li").removeClass("current");
		   $(this).addClass("current");
		   
		   var activeTab = $(this).find("a").attr("href");
		   $(activeTab).addClass("current").show();
		   
		});
    });
HTML

<div id="tab">
	<ul id="tabs" class="clearfix"> 
		<li><a href="#content_1">TAB-1</a></li>
		<li><a href="#content_2">TAB-2</a></li>
		<li><a href="#content_3">TAB-3</a></li>
	</ul>
	<ul id="contents">
	    <li id="content_1">Content-1</li>
		<li id="content_2">Content-2</li>
		<li id="content_3">Content-3</li>
	<ul>
</div>	

1. Javascirpt 写法在于利用setTab()函数传参数,通过参数将tabs>li与 contents>li配对.

2. jQuery写法利用href属性获取参数, 通过href参数值配对.

3. HTML有所区别

04-03
### 关于 Tabs 的概念与实现 在 IT 领域中,“Tabs”通常指代一种用户界面组件,允许在同一窗口下通过标签页的形式切换不同内容或视图。这种设计广泛应用于浏览器、文本编辑器和其他软件应用中。 #### 1. **Tabs 的基本功能** Tabs 提供了一种高效的方式来管理多个子页面或文档,使用户能够在有限的空间内快速访问和切换相关内容。每个 Tab 可能对应一个独立的内容区域,这些内容可以动态加载或预渲染[^1]。 #### 2. **前端开发中的 Tabs 实现** 在 Web 开发中,Tabs 常见的实现方式依赖 HTML、CSS 和 JavaScript 技术栈: - 使用 `<ul>` 列表作为导航容器,其中每个列表项代表一个 Tab。 - 结合 CSS 设置样式,隐藏未选中的 Tab 内容并高亮当前激活的 Tab。 - 利用 JavaScript 或框架(如 React、Vue.js)监听用户的点击事件,并更新 DOM 显示相应的内容。 以下是基于原生 JavaScript 的简单 Tabs 实现示例: ```javascript // 初始化 Tabs 功能 document.querySelectorAll('.tab').forEach(tab => { tab.addEventListener('click', () => { const targetId = tab.getAttribute('data-target'); document.querySelector('.active-tab').classList.remove('active-tab'); document.querySelector(`#${targetId}`).classList.add('active-tab'); document.querySelector('.selected').classList.remove('selected'); tab.classList.add('selected'); }); }); ``` #### 3. **后端视角下的 Tabs 数据结构** 如果涉及后台数据传递,则可能需要定义 DTO(Data Transfer Object),用于封装 Tabs 所需的数据模型。例如,在展示某个网页的不同选项卡时,可能会有如下 VO 定义[^2]: ```json { "tabs": [ {"id": "home", "title": "Home Page"}, {"id": "profile", "title": "User Profile"} ], "currentTab": "home" } ``` 上述 JSON 对象描述了一个包含两个 Tabs 的场景,分别指向主页和个人资料页面。 #### 4. **跨平台支持** 现代移动设备和平板电脑也普遍采用类似的 Tabs 设计理念,尤其是在 Android 应用程序中,`ViewPager` 组件配合 `TabLayout` 控件实现了流畅的多页面浏览体验。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值