`

vertical-tab

阅读更多
vertical tab component

approach 1
implement with li and div,
set li width 61px,and float left
set div margin-left 61px,

it's work in FF & chrome, but not work in IE6

<html>
	<head>
		<title>tab demo</title>
		<style>
			.ul {padding: 0; margin: 0; float: left; z-index: 2;}
			.ul li {margin: 0; padding: 0; border: 1px solid #777; border-bottom: 0; list-style: inside none; width: 60px; cursor: pointer;}
			.ul li.bottom {border: 0; border-top: 1px solid #777; width: 61px; cursor: auto;}
			.ul li.active {background-color: lightgray; border-right: 1px solid lightgrey; }
			.ul li.hover {background-color: darkgray;}
			.content {border: 1px solid #777; margin-left: 61px; width: auto; height: 100%; padding: 5px; background-color: lightgray;}
		</style>
		<script>
			var currentItem=0;
			function outStyle(){
				if(this.className=="bottom")
					return;
				else if(this.value!=currentItem)
					this.className="";
				else
					this.className="active";
			}
			function hoverStyle(){
				if(this.className=="bottom")
					return;
				this.className="hover";
			}
			function clickStyle(){
				this.parentNode.childNodes[currentItem].className="";
				this.className="active";	
				currentItem=this.value;
			}
			function init(){
				var ul=document.getElementsByTagName("ul")[0];
				var len=ul.childNodes.length;
				for(var i=0;i<len-2;i++){
					var e=ul.childNodes[i];
					if("li"!=e.nodeName.toLowerCase())
						continue;
					e.value=i;
					e.onclick=clickStyle;
					e.onmouseover=hoverStyle;
					e.onmouseout=outStyle;
					//decide first li, and set to currentItem
					if(e.className=="active")
						currentItem=e.value;
				}
			}
			window.onload=init;
		</script>
	</head>
	<body>
		<div style="border: 0px solid blue; padding: 5px; margin: 5px; width: 50%; height: 50%;">
			<ul class="ul">
				<li class="active">a</li>
				<li>b</li>
				<li>c</li>
				<li>d</li>
				<li>e</li>
				<li class="bottom">&nbsp;</li>
			</ul>
			<div class="content">
				<div style="border: 1px solid #cdabde; height: 100%; width: 100%; background-color: white">abc</div>
			</div>
		</div>
	</body>
</html>


result:




approach2
implement with table
list tag as first td, and combine all second td as container
it work in IE6, FF, but the border-right of 1st td can't be invisible in chrome.
I believe it's bug of chrome.
hi, it's the reason why FF became the best favor choice in front designer

<html>
	<head>
		<title>tab demo</title>
		<style>
			#t {
				border-collapse: collapse;
				margin: 0;
				padding: 0;
				width: 300px;
				height: 70%;
			}
			#t td{
				margin: 0;
				padding: 0px;
			}
			#t td.left {
				width: 80px;
				height: 22px;
				padding: 0;
				margin: 0;
				border: 1px solid #777;
				cursor: pointer;
			}
			#t td.left_bottom {
				width: 80px;
				border-right: 1px solid #777;
			}
			#t td.left_hover {
				width: 80px;
				height: 22px;
				border: 1px solid #777;
				border-right: 0;
				background-color: darkgray;
			}
			#t td.left_active {
				width: 80px;
				height: 22px;
				border: 1px solid #777;
				border-right: 0;
				background-color: aqua;
			}
			#t td.content {
				border: 1px solid #777;
				border-left: 0;
				padding: 3px;
				background-color: aqua;
			}
			#t td.content div {
				height: 100%;
				border: 0px solid #777;
				margin: 0;
				padding: 0;
			}
		</style>
		<script>
			var currentTD=0;
			function clickStyle(){
				var tr=this.parentNode;
				var t=tr.parentNode;
				t.rows[currentTD].cells[0].className="left";
				this.className="left_active";
				currentTD=tr.rowIndex;
			}
			function outStyle(){
				if(this.className=="bottom")
					return;
				else if(this.parentNode.rowIndex!=currentTD)
					this.className="left";
				else
					this.className="left_active";
			}
			function hoverStyle(){
				if(this.className=="left_bottom")
					return;
				this.className="left_hover";
			}
			function init(){
				var t=document.getElementById("t");
				var len=t.rows.length;
				for(var i=0;i<len-1;i++){
					t.rows[i].cells[0].className="left";
					t.rows[i].cells[0].onclick=clickStyle;
					t.rows[i].cells[0].onmouseover=hoverStyle;
					t.rows[i].cells[0].onmouseout=outStyle;
				}
				t.rows[0].cells[0].className="left_active";
			}
			window.onload=init;
		</script>
	</head>
	<body>
		<table id="t">
			<tr>
				<td><a href="#" onclick="document.getElementById('if').src='../processbar/demo.html'">demo</a></td>
				<td rowspan="6" class="content">
					<div style="border: 1px solid #ccc; width: 100%; height: 100%; overflow: auto; text-align: center; background-color: white;">
						<iframe id="if" name="if" frameborder="0" height="98%" width="98%"></iframe>
					</div>
				</td>
			</tr>
			<tr>
				<td><a href="#" onclick="document.getElementById('if').src='../processbar/demo_optimize.html'">demo2</a></td>
			</tr>
			<tr>
				<td>3</td>
			</tr>
			<tr>
				<td>4</td>
			</tr>
			<tr>
				<td>5</td>
			</tr>
			<tr>
				<td class="left_bottom">&nbsp;</td>
			</tr>
		</table>
	</body>
</html>


result


  • 大小: 85.6 KB
  • 大小: 90.5 KB
分享到:
评论

相关推荐

    手机移动端Tab选项卡切换带下拉数据异步加载js插件

    在移动设备上,为了优化用户体验,常常会使用Tab选项卡设计来展示内容,尤其是在空间有限的手机屏幕上。这种设计能够将大量信息分门别类,让用户通过简单的切换就能访问到不同部分的内容。本文将深入探讨“手机...

    vertical-tabs-reloaded:Firefox附加组件,用于垂直排列标签

    为Firefox重新加载了垂直标签 该Firefox插件以垂直方式而非水平方式排列标签。 垂直制表符重装上阵是一个叉子,将其中断。 原始项目在很大程度上受到“树样式选项卡”加载项的启发。 源代码和问题跟踪器: : 源代码...

    安卓 竖直选项卡 verticaltablayout_viewpager

    开发者可以通过自定义ViewGroup或者利用开源库(如`com.getbase:android-vertical-tab-layout`)来实现这个功能。 2. **ViewPager**: ViewPager是一个强大的滑动视图容器,可以用来展示多个页面,并允许用户通过...

    纵向Tab ---ext

    1. "verticaltabs_files":这是一个文件夹,可能包含了实现纵向Tab功能所需的所有资源文件,如CSS样式表、JavaScript脚本、图片或其他静态资源。 2. "verticaltabs.html":这可能是演示或实例代码的HTML文件,展示了...

    竖向tab标签支持上下翻滚

    var content = document.querySelector('.tab-content'); // 添加事件监听 tabs.forEach(function(tab) { tab.addEventListener('click', function() { // 更新内容区域显示 ... }); }); // 或者使用...

    多种element-ui标签选项卡插件

    每个`&lt;el-tab-pane&gt;`都需要一个唯一的`label`属性,用于显示在选项卡上,以及`name`属性,用于唯一标识当前选项卡: ```html &lt;el-tabs v-model="activeName"&gt; &lt;el-tab-pane label="用户管理" name="first"&gt; 用户...

    ngVerticalTabs:Angular指令创建可重用的组件以显示垂直选项卡

    3. 在需要展示垂直选项卡的组件模板中,插入`&lt;ng-vertical-tabs&gt;`指令,并在其中添加多个`&lt;ng-vertical-tab&gt;`元素。 总的来说,`ngVerticalTabs`提供了一个便捷的方式,在Angular应用中创建具有垂直布局的选项卡...

    FastReport 6.4.12 PRO VCL FS

    - Fixed cross-tab changing when AutoWidth = False [6.4.10] - Fixed TfrxDMPMemoView bounds in the PDF export - Fixed exporting of fsAltDot frame line style in the PDF export - Fixed C++ Builder ...

    jQuery网站垂直导航标签tab选项卡切换代码

    &lt;div id="content2" class="tab-content hidden"&gt;内容2 &lt;div id="content3" class="tab-content hidden"&gt;内容3 ``` 然后,在CSS中,我们可以设置样式,如颜色、字体和布局,以使导航看起来更吸引人。`hidden`类可以...

    史上最全的Android的Tab与TabHost.txt

    ### Android中的Tab与TabHost详解 #### 一、Tab与TabHost概述 在Android开发过程中,经常需要设计具有标签切换功能的应用界面。其中,`TabHost`是Android提供的一种实现多标签视图的方式,它可以帮助开发者创建出...

    jQuery tabs 纵向显示

    为了改变其方向,我们可以添加一个新的 CSS 类,比如 `.vertical-tabs`,并应用以下样式: ```css .vertical-tabs .ui-tabs-nav { width: auto; height: 100%; display: flex; flex-direction: column; } ``` ...

    android实现自定义tab页

    android:orientation="vertical"&gt; android:id="@+id/tab_radio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" android:button="@null" &lt;!-- 去掉...

    精美的tab结构js

    6. `tabs-style-glass.html`、`tabs-style-vertical.html`、`tabs-style-work.html`、`tabs-style-xp.html`:这些文件可能分别展示了玻璃风格、垂直布局、工作风格以及XP风格的Tab样式,体现了Tab组件的可定制性和...

    Android Tablayout 自定义Tab布局的使用案例

    android:orientation="vertical"&gt; android:id="@+id/choose_icon_tab_tv" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:background...

    android纵向的tab

    tabLayout.setTabGravity(TabLayout.GRAVITY_CENTER_VERTICAL); tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); ``` 6. **处理Tab点击事件** 为了使Tab可以正确响应垂直滑动,我们还需要在`TabLayout....

    js Tab选项卡特效

    vertical-align: middle; text-align: center; background-color: #37709B; margin: 0; margin-right: 18px; font-weight: bold; font-size: 14px; color: #FFF; cursor: pointer; float: left; } ....

    android 多个Tab的切换

    android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dp"&gt; android:id="@android:id/tabs" android:layout_width="match_parent...

    android的tab布局简单例子

    android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dp"&gt; android:id="@android:id/tabs" android:layout_width="match_parent...

    关于qtabWidget tab竖写方式

    这段代码中,`QTabBar::tab-bar {alignment: vertical;}`这一部分是关键,它将选项卡的排列方式设置为垂直。其他部分则用于美化选项卡的样式。 其次,如果需要在程序运行时动态切换选项卡的排列方式,可以使用...

    基于element-ui标签选项卡.zip

    Element UI 的 `el-tabs` 和 `el-tab-pane` 组件提供了灵活的选项卡实现方式,支持水平和垂直方向的切换,以及自定义标签头等内容。 1. **Element UI 的 Tab 组件**:`el-tabs` 是主容器,负责管理多个选项卡,而 `...

Global site tag (gtag.js) - Google Analytics