xul elements -- tabbox

简单的XUL控件很好理解,可以对比Html找到答案。为了更进一步了解他的优点,看一些稍为复杂一点的控件--Tab。

      在没有使用XUL之前,要实现一个Tab,可能需要几个按钮,几个panel或div,再加上一些脚本来控制,比较麻烦,虽然有些第三方的东西可以实现 Tab功能,例如微软的TabContrl,但始终觉得不方便,需要安装第三方的空间。今天看了看XUL中的Tab,感觉这种控件才是我们想要的。

      首先来看看一个Tab的结构

<tabbox id="tablist">
  <tabs>
    -- tab elements go here --
  </tabs>
  <tabpanels>
    -- tabpanel elements go here --
  </tabpanels>
</tabbox>

      很好理解
      tabbox标签定义了整个tab的容器,下面有两个子容器,一个是tabs,一个是tabpanels,tabs容器里包含了所有的tab按钮,而 tabpanels里包含所有的panel显示,tab按钮与panel是一对一的,即如果tabs里有3个tab,则tabpanels里需要有3个 tabpanel与之对应,下面看一个实际例子:

<tabbox>
  <tabs>
    <tab label="Mail"/>
    <tab label="News"/>
  </tabs>
  <tabpanels>
    <tabpanel id="mailtab">
      <checkbox label="Automatically check for mail"/>
    </tabpanel>
    <tabpanel id="newstab">
      <button label="Clear News Buffer"/>
    </tabpanel>
  </tabpanels>
</tabbox>

      显示效果如下:

So esay,So Cool

      有时候tabpanel里面的内容比较多,还可以分成多个xul页面来编辑

tabButton.xul

<?xml version="1.0"?> 
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xul-overlay href="tab1.xul"?>
<?xul-overlay href="tab2.xul"?>
<window id="findfile-window"    
title="Find Files"    
orient="horizontal"    
xmlns=http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul
> 
<tabbox id="TabBox1" style="margin-top: 3px;" flex="1">
  <tabs id="Tabs1" οnselect="alert(event.target.selectedItem.id);"/>
  <tabpanels id="TabPanels1" flex="1" align="stretch" />
</tabbox>
</window>

tab1.xul

<?xml version="1.0"?> 
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<overlay id="tab1overlay"
        xmlns=http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul

  xmlns:html=http://www.w3.org/1999/xhtml
>
<tabbox id="TabBox1" flex="1">
 <tabs id="Tabs1">
  <tab id="tab1" label="tab1"></tab>
 </tabs>
 <tabpanels id="TabPanels1" flex="1" align="stretch">
  <tabpanel id="tabpanel1">
   <label id="label1" value="This is Tab1"/>
  </tabpanel>
 </tabpanels>
</tabbox>
</overlay>

tab2.xul

<?xml version="1.0"?> 
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<overlay id="tab2overlay"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul
"
  xmlns:html="http://www.w3.org/1999/xhtml
">
<tabbox id="TabBox1" flex="1">
 <tabs id="Tabs1">
  <tab id="tab2" label="tab2"></tab>
 </tabs>
 <tabpanels id="TabPanels1" flex="1" align="stretch">
  <tabpanel id="tabpanel2">
   <label id="label2" value="This is Tab2"/>
  </tabpanel>
 </tabpanels>
</tabbox>
</overlay>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值