【问题标题】:Bootstrap vertical tabbing in multi column grid多列网格中的引导垂直制表符
【发布时间】:2013-11-21 02:04:30
【问题描述】:

我有一个使用 Twitter Bootstrap 3 网格系统的两列表单。每列由一个标签和一个控件组成。所以实际上,每个“行”是 span3 的 4 列(一个标签、一个控件、一个标签、一个控件)。这很好用,但我有一个问题,当我制表符时,它会从左到右水平制表符。但是我想垂直滚动,这意味着一个标签会一直向下直到该列完成,然后是第二列......

我读到了tabindex。但我想知道我是否可以做一些更自动化的事情......我的意思是,我想渲染 HTML,以便默认的 tab 顺序是我想要的。这意味着我应该先渲染左列,然后再渲染第二列。也许还有一些 CSS 魔法,所以第二列不在第一列之下,而是在右边……知道这是否可能或如何实现?

非常感谢,

【问题讨论】:

  • 嘿,我只是想我会提醒你回顾你以前的问题,如果它回答了你的问题,mark 的答案是accepted。这可以通过点击问题左侧的check mark 来完成。
  • 将第一列中所有输入的tabindex设置为1,然后将第二列设置为2,依此类推。如果您不想在标记中这样做,您可以编写一个简单的 jquery 脚本
  • 有趣的是,我有同样的问题,但恰恰相反。我想停止网格中的垂直制表符并将其设为水平。可惜我们没有同时遇到这个问题!

标签: html css forms twitter-bootstrap twitter-bootstrap-3


【解决方案1】:

我所做的就是这样做

<div class="row">
  <div class="col-sm-12 col-md-6">
    <div class="row">LABEL</div><div class="col-sm-12 col-md-6">INPUT</div>
     <div class="col-sm-12 col-md-6">
    </row>
    <div class="row">LABEL</div><div class="col-sm-12 col-md-6">INPUT</div>
     <div class="col-sm-12 col-md-6">
    </row>
  </div>
  <div class="col-sm-12 col-md-6">
    <div class="row">LABEL</div><div class="col-sm-12 col-md-6">INPUT</div>
     <div class="col-sm-12 col-md-6">
    </row>
    <div class="row">LABEL</div><div class="col-sm-12 col-md-6">INPUT</div>
     <div class="col-sm-12 col-md-6">
    </row>
  </div>
</div>

这让我使用引导网格在两列之间进行垂直制表。

【讨论】:

    【解决方案2】:

    您正在寻找tabindex,您可以在您的元素上设置标签索引,如下所示:

    <input type="text" tabindex="2" />
    

    因此您需要调整元素的标签索引,以便第一列具有tabindex="1"tabindex="2" 等。

    jQuery -(您可能需要调整函数,以便它正确处理您的 bootstrap 列。)

    var tabindex = 1;
    $('input,select').each(function() {
      if (this.type != "hidden") {
        var $input = $(this);
        $input.attr("tabindex", tabindex);
        tabindex++;
      }
    });
    

    【讨论】:

    • 谢谢!是的,我读到过。但我想知道我是否可以做一些更自动化的事情......我的意思是,我想渲染 HTML,以便默认的 tab 顺序是我想要的。这意味着我应该先渲染左列,然后再渲染第二列。也许还有一些 CSS 魔法,所以第二列不在第一列之下,而是在右边……
    • @MarianoMartinezPeck 不确定.. 您可以使用 jQuery 为所有输入元素设置选项卡索引。
    • 谢谢。这实际上解决了我的问题。我所做的是,我用某个 ID 将每个左侧部分包围在一个 div 中,并用另一个 ID 将每个右侧部分包围起来。然后使用与您类似的脚本,我从 1 开始,仅对 div #leftColumn 的那些输入。然后我做了同样的事情,但从 100 开始,并为 div #rightColumn 输入。谢谢!
    猜你喜欢
    • 2020-09-30
    • 2016-02-28
    • 2018-12-05
    • 2018-03-05
    • 1970-01-01
    • 2021-08-13
    • 2015-03-01
    • 2018-05-30
    • 2016-04-19
    相关资源
    最近更新 更多