我如何在HTML标签视图?(How do I make a tabbed view in HTML?

2019-07-29 02:49发布

当一个选项卡单击,为标签A.节目内容点击选项卡B,节目内容选项卡B,等等。

什么是构建一个HTML片段的最简单,最兼容的方式?

我并不想在这里使用的库,所以没有任何的jQuery或任何其他库。

Answer 1:

如果你想推出自己的标签控制,你可以这样做:

<html>
  <head>
    <script type="text/javascript">

      function activateTab(pageId) {
          var tabCtrl = document.getElementById('tabCtrl');
          var pageToActivate = document.getElementById(pageId);
          for (var i = 0; i < tabCtrl.childNodes.length; i++) {
              var node = tabCtrl.childNodes[i];
              if (node.nodeType == 1) { /* Element */
                  node.style.display = (node == pageToActivate) ? 'block' : 'none';
              }
          }
      }

    </script>
  </head>
  <body>
    <ul>
      <li>
        <a href="javascript:activateTab('page1')">Tab 1</a>
      </li>
      <li>
        <a href="javascript:activateTab('page2')">Tab 2</a>
      </li>
      ...
    </ul>
    <div id="tabCtrl">
      <div id="page1" style="display: block;">Page 1</div>
      <div id="page2" style="display: none;">Page 2</div>
      ...
    </div>
  </body>
</html>


Answer 2:

这是一个不同类型的选项卡的列表中加教程关于如何建立他们



Answer 3:

TabTastic是一个很好的指南-它是访问,(当JavaScript不可用)失败,非常优雅。



Answer 4:

如果你想实现自己的标签视图,只需像下面这样做:

<html>
    <head>
        <style>
            .tab {
            display:none;
            }
        </style>

        <script type="text/javascript">
          function initTabView(){
            var x = document.getElementsByClassName('tab-view')
            for(var i=0; i < x.length; i++) {
              x[i].onclick = displayTab;
            }

            var prevViewedTab = null;

            function displayTab(e) {
            var idOfTabToDisplay = this.getAttribute("data-tab")

            if(prevViewedTab) {
              prevViewedTab.style.display = 'none';
            }

            var tabToDisplay = document.getElementById(idOfTabToDisplay);
              tabToDisplay.style.display = 'block';
              prevViewedTab = tabToDisplay;
            }

            var defaultTab = document.getElementsByClassName('default-tab')
              if (defaultTab.length) {
                defaultTab[0].style.display = 'block';
                prevViewedTab = defaultTab[0];
              }
          }
        </script>
    </head>

    <body>
        <ul>
            <li>
                <a data-tab="tab1" class="tab-view">Tab 1</a>
            </li>
            <li>
                <a data-tab="tab2" class="tab-view">Tab 2</a>
            </li>
            <li>
                <a data-tab="tab3" class="tab-view">Tab 3</a>
            </li>
            <li>
                <a data-tab="tab4" class="tab-view">Tab 4</a>
            </li>
        </ul>
        <div id="tabCtrl">
            <div class="tab default-tab" id="tab1">This is Tab 1</div>
            <div class="tab" id="tab2">This is Tab 2</div>
            <div class="tab" id="tab3">This is Tab 3</div>
            <div class="tab" id="tab4">This is Tab 4</div>
        </div>

        <script>
            initTabView();
        </script>
    </body>
</html>

一的jsfiddle ,请点击这里 。



Answer 5:

看看一个例子,如这 (谷歌搜索“选项卡视图的javascript”提供)。

可以很明显的一点点定制使用,但它是有益的把它拆开,并确定它在做什么。 它基本上启用或禁用<div>使用display风格并把它置blocknone



Answer 6:

如果“简单和兼容”是你唯一两个标准,我建议的jQuery UI的标签插件 。 跨浏览器,并执行不在话下。



Answer 7:

根据你的野心,它可能仅仅是一个无序列表的问题和若干<div> S(选项卡的内容)。 然后一个简单的JavaScript可以-借助于getElementById() -对于所有设定的显示属性<div> :■ none对所有除的电流。

或者,你可以看看这个 。

编辑 :不是唯一的一个链接到jQuery的网站,似乎:)



Answer 8:

在该选项卡窗口小部件的jQuery UI易于使用: http://jqueryui.com/demos/tabs/ 。

jQuery的标签窗口小部件的工作原理完全在浏览器端 - 对所有标签含量在每次请求发送,或者你可以写一个使用Ajax动态加载的标签内容的JavaScript代码。

但它可能不适合您的使用。 试想,如果你需要控制选项卡服务器端(即标签上点击发送一个新的页面请求到服务器 - 服务器构建有标签的外观HTML)。



Answer 9:

如果你打开使用JavaScript, jQuery的标签是相当不错的。



文章来源: How do I make a tabbed view in HTML?