`
yarafa
  • 浏览: 88052 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用 table 实现垂直选项卡

阅读更多

说到选项卡,随便在网上搜搜就能找到一大堆,而且都很靓,效果也很不错。但是,这些选项卡也有很多都用到了专用的 js 库,抑或是难以修改。最近几天在给人做网页,用一个 table 基于基本的 CSS 样式定义以及基本的 js 函数定义,实现了垂直选项卡的效果,写下来与大家分享,如有不当之处,欢迎指正。

 

1. 样式的定义

/**
 * 说明:用于装载垂直选项卡的表格样式定义
 */
.menuTable {
	width: 100%;
	text-align:center;
	margin: 0px 0px 0px 0px;
	padding: 0px 0px 0px 0px;
}

/**
 * 说明:垂直选项卡菜单项样式定义
 */
.menuTable td {
	height: 40px;
	color:#27056a;
	font-size: 12px;
	font-weight:bold;
	border-top: 0px;
	border-left: 0px;
	border-right: 0px;
	border-bottom: 1px solid #64B8E4;
	background-image:url(../image/bg-tabset-table.jpg);
	background-repeat:repeat-x;
	cursor: pointer;
	margin: 0px 0px 0px 0px;
	padding: 0px 0px 0px 0px;
}

/**
 * 说明:鼠标移至选项卡上时的样式定义
 */
.menuTable td.hover {
	border-top: 1px solid #64B8E4;
	border-bottom:1px solid #64B8E4;
	color:#147AB8;
	background:none;
}

 

2. 选项卡定义

<table width="800" height="300" border="1" bordercolor="#64B8E4" style="border-collapse: collapse">
	<tr>
		<td width="120" valign="top">
			<table class="menuTable" cellspacing="0">
				<tr>
					<td id="td1" onmouseover="displayAndHide('', 1, 3)" class="hover">
						A
					</td>
				</tr>
				<tr>
					<td id="td2" onmouseover="displayAndHide('', 2, 3)">
						B
					</td>
				</tr>
				<tr>
					<td id="td3" onmouseover="displayAndHide('', 3, 3)">
						C
					</td>
				</tr>
			</table>
		</td>
		<td width="680">
			<table width="100%" height="100%">
				<tr valign="top">
					<td valign="top">
						<div id="div1" style="height:295px">
							Content A
						</div>
						<div id="div2" style="display: none;">Content B</div>
						<div id="div3" style="display: none;">Content C</div>
					</td>
				</tr>
			</table>
		</td>
	</tr>
</table>

 

3. JS 函数定义

/**
 * @param menuName - 选项卡菜单的部分名称
 * @param index - 当前选项卡的索引号
 * @param count - 选项卡的数目
 */
function displayAndHide(menuName, index, count) {
	for(var i = 1; i <= count; i++) {
		var div = document.getElementById("div" + menuName + i);
		var cell = document.getElementById("td" + menuName + i);
		div.style.display = (i == index) ? "" : "none";
		cell.className = (i == index) ? "hover" : "";
	}
}

 

4. 效果预览

 

5. Demo 下载

附件 demo,欢迎下载。

 

 

 

-------------------------------------------------
Stay Hungry, Stay Foolish!
Afa
July 9th, 2010
-------------------------------------------------

分享到:
评论

相关推荐

    采用Table CSS实现的TabPane选项卡.rar

    "采用Table CSS实现的TabPane选项卡"是一个利用CSS样式表来构建Tab Pane功能的例子。在这个项目中,我们将深入探讨如何使用纯CSS来创建这种效果,以及为何选择使用表格布局(Table CSS)。 首先,让我们理解什么是...

    mfc 自绘控件实现 竖排TAB sheet控件

    本教程将详细介绍如何利用MFC自绘控件来实现竖排的TAB sheet控件,并且在每个选项卡上添加图标。 首先,我们需要创建一个继承自CPropertySheet的类,例如命名为`CMyPropertySheet`。`CPropertySheet`是MFC中用于...

    zencart的tab插件,好多个

    从文件名来看,我们可以推测这些插件涵盖了多种选项卡实现技术: 1. **通用的Tab选项卡,内容渐显.html**:这可能是一个通用的选项卡解决方案,可以适应不同的页面布局,并且可能具备内容渐显效果,即在切换标签时...

    解决elementUI 切换tab后 el_table 固定列下方多了一条线问题

    我们需要利用`/deep/`或`&gt;&gt;&gt;`(Vue 2.x中的深度选择器)来穿透组件的样式隔离层,然后设置`height: 100% !important;`来确保固定列的高度与表格主体保持一致。 总之,处理ElementUI的`el_table`固定列问题,特别是...

    pb数据窗口技巧38个

    3. 在 **Position** 选项卡中,选择 **AutosizeHeight** 选项。 4. 在 **Edit** 选项卡中,选择 **AutoHorzScroll** 选项。 5. 完成设置后点击 **OK** 按钮。 6. 对于 **DetailBand**(即 Detail 层级),打开其属性...

    Android页面布局

    其次,表格布局(TableLayout)适用于需要展示数据网格的情况,如设置选项卡或展示表单。它由表格行(TableRow)组成,每一行可以包含多个列。表格布局允许开发者精确控制单元格的宽度和高度,但相比其他布局方式,...

    iOS tableView嵌套

    这允许我们在一个单元格内展示更复杂的数据结构,比如一个多级分类的目录或者横向滑动的选项卡。 首先,我们要理解如何创建一个基本的tableView。在iOS中,UITableView是负责显示一系列可滚动行的控件。我们通常会...

    SWT开发组件demo

    8. **选项卡(TabFolder)**:`TabFolder`组件可以将多个页面(TabItem)组织成一个选项卡式界面,用户可以通过点击不同的标签切换内容,非常适合展示和管理多个相关但相互独立的信息板块。 9. **高级组件应用**:...

    Excel鲜为人知的35招秘技

    21. 公式错误检查:出现#错误时,使用F9或"公式"选项卡中的"错误检查"功能,可快速定位和修正问题。 22. 使用COUNTIF和COUNTIFS:统计满足特定条件的单元格数量,COUNTIFS可同时应用多个条件。 23. 快速合并单元格...

    千斤重担一肩挑——自制CPU防压装置.pdf

    - 在"查看"选项卡的高级设置中,勾选"显示所有文件和文件夹",这样可以显示隐藏的文件和文件夹。 - 进入Windows 2000的系统目录,找到名为"SYSDM.CPL"的文件,先备份此文件。 - 使用文本编辑软件(如记事本)打开该...

    bootstrap简单模板

    在这个模板中,我们可以看到一个简单的水平导航条,它利用了`.navbar`类和`.nav`类来定义整体导航结构。`.navbar`提供了导航的基本容器,而`.nav`则定义了导航链接的样式。通过添加`.active`类到当前选中的链接,...

    Data From Keil to Excel (keil数据导出至excel)

    在分析内存数据时,还可以利用Excel的其他高级功能,如PivotTable(透视表)和VLOOKUP(垂直查找)函数,对数据进行汇总和交叉分析。透视表可以帮助我们快速总结大量数据,而VLOOKUP可以方便地在不同工作表或数据...

    网页设计与网站建设试卷.doc

    9. 【布局】选项卡中的4个Spry构件包括Spry菜单栏、Spry可折叠面板、Spry选择列表和Spry折叠式框架。这些是Dreamweaver内置的JavaScript库,用于增强网页的交互性。 10. Spry菜单栏是一组可导航的菜单按钮,当访问...

    bootstrap win8 后台模板

    7. **UI Tabs & Accordions (ui_tabs_accordions.html)**:这个部分包含选项卡和手风琴(折叠面板)组件,它们可以有效组织和展示大量信息,提高界面的可读性。 8. **Form Wizard (form_wizard.html)**:表单向导是...

    word英文书写纸.doc

    然后,隐藏表格边框:右键点击表格,选择“表格属性”或“Table Properties”,在“边框和底纹”选项卡中,取消选中所有边框。 为了添加个人信息,如班级和姓名,可以使用文本框。点击“插入”-&gt;“文本框”或“Text...

    Excel 使用技巧

    7. **快速修改单元格式次序**:在“开始”选项卡的“数字”组中,可以快速更改数字格式、对齐方式等。 8. **彻底清除单元格内容**:右键单击单元格,选择“清除内容”,可删除数据但保留格式;选择“删除单元格”则...

    Designer-extjs

    - **垂直盒子布局(vbox)**:垂直排列组件。 #### 5. 添加与配置组件 - **添加组件**:通过拖放方式添加各种组件至设计区。 - **定位组件**:在设计区内精确调整组件的位置。 - **配置组件**:设置组件属性以满足...

    DIV+CSS之弹性盒模型布局

    这种布局模式充分利用了CSS3中的Flexbox(弹性盒模型)特性,使得开发者可以轻松应对各种复杂的网页布局需求,无论是在响应式设计还是在创建动态界面时都有出色的表现。 首先,我们需要理解什么是盒模型。在HTML和...

Global site tag (gtag.js) - Google Analytics