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"> </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"> </td>
</tr>
</table>
</body>
</html>
result
- 大小: 85.6 KB
- 大小: 90.5 KB
分享到:
相关推荐
在移动设备上,为了优化用户体验,常常会使用Tab选项卡设计来展示内容,尤其是在空间有限的手机屏幕上。这种设计能够将大量信息分门别类,让用户通过简单的切换就能访问到不同部分的内容。本文将深入探讨“手机...
为Firefox重新加载了垂直标签 该Firefox插件以垂直方式而非水平方式排列标签。 垂直制表符重装上阵是一个叉子,将其中断。 原始项目在很大程度上受到“树样式选项卡”加载项的启发。 源代码和问题跟踪器: : 源代码...
开发者可以通过自定义ViewGroup或者利用开源库(如`com.getbase:android-vertical-tab-layout`)来实现这个功能。 2. **ViewPager**: ViewPager是一个强大的滑动视图容器,可以用来展示多个页面,并允许用户通过...
1. "verticaltabs_files":这是一个文件夹,可能包含了实现纵向Tab功能所需的所有资源文件,如CSS样式表、JavaScript脚本、图片或其他静态资源。 2. "verticaltabs.html":这可能是演示或实例代码的HTML文件,展示了...
var content = document.querySelector('.tab-content'); // 添加事件监听 tabs.forEach(function(tab) { tab.addEventListener('click', function() { // 更新内容区域显示 ... }); }); // 或者使用...
每个`<el-tab-pane>`都需要一个唯一的`label`属性,用于显示在选项卡上,以及`name`属性,用于唯一标识当前选项卡: ```html <el-tabs v-model="activeName"> <el-tab-pane label="用户管理" name="first"> 用户...
3. 在需要展示垂直选项卡的组件模板中,插入`<ng-vertical-tabs>`指令,并在其中添加多个`<ng-vertical-tab>`元素。 总的来说,`ngVerticalTabs`提供了一个便捷的方式,在Angular应用中创建具有垂直布局的选项卡...
- 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 ...
<div id="content2" class="tab-content hidden">内容2 <div id="content3" class="tab-content hidden">内容3 ``` 然后,在CSS中,我们可以设置样式,如颜色、字体和布局,以使导航看起来更吸引人。`hidden`类可以...
### Android中的Tab与TabHost详解 #### 一、Tab与TabHost概述 在Android开发过程中,经常需要设计具有标签切换功能的应用界面。其中,`TabHost`是Android提供的一种实现多标签视图的方式,它可以帮助开发者创建出...
为了改变其方向,我们可以添加一个新的 CSS 类,比如 `.vertical-tabs`,并应用以下样式: ```css .vertical-tabs .ui-tabs-nav { width: auto; height: 100%; display: flex; flex-direction: column; } ``` ...
android:orientation="vertical"> android:id="@+id/tab_radio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" android:button="@null" <!-- 去掉...
6. `tabs-style-glass.html`、`tabs-style-vertical.html`、`tabs-style-work.html`、`tabs-style-xp.html`:这些文件可能分别展示了玻璃风格、垂直布局、工作风格以及XP风格的Tab样式,体现了Tab组件的可定制性和...
android:orientation="vertical"> android:id="@+id/choose_icon_tab_tv" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:background...
tabLayout.setTabGravity(TabLayout.GRAVITY_CENTER_VERTICAL); tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); ``` 6. **处理Tab点击事件** 为了使Tab可以正确响应垂直滑动,我们还需要在`TabLayout....
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:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dp"> android:id="@android:id/tabs" android:layout_width="match_parent...
android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dp"> android:id="@android:id/tabs" android:layout_width="match_parent...
这段代码中,`QTabBar::tab-bar {alignment: vertical;}`这一部分是关键,它将选项卡的排列方式设置为垂直。其他部分则用于美化选项卡的样式。 其次,如果需要在程序运行时动态切换选项卡的排列方式,可以使用...
Element UI 的 `el-tabs` 和 `el-tab-pane` 组件提供了灵活的选项卡实现方式,支持水平和垂直方向的切换,以及自定义标签头等内容。 1. **Element UI 的 Tab 组件**:`el-tabs` 是主容器,负责管理多个选项卡,而 `...