使用Twitter Bootstrap的4列到2列

时间:2013-02-20 19:12:58

标签: twitter-bootstrap

我有一个4列流体布局:

<div class="container-fluid">
    <div class="row-fluid">
        <div class="span3">A</div>
        <div class="span3">B</div>
        <div class="span3">C</div>
        <div class="span3">D</div>
    </div>
</div>

[  A  ][  B  ][  C  ][  D  ]

对于移动设备,bootstrap会将列呈现在另一个下面,这样可以正常工作:

[            A             ]
[            B             ]
[            C             ]
[            D             ]

但是对于平板电脑,我希望有2列2:

[      A     ][      B     ]
[      C     ][      D     ]

是否可以使用bootstrap本地实现此行为?

4 个答案:

答案 0 :(得分:6)

我发现Zurb Foundation(http://foundation.zurb.com/docs/grid.php#threeBlockEx)提供了这种功能,但我想继续使用Twitter Bootstrap。所以我设法根据Foundation使用的技术添加自定义规则:

@media (min-width: 768px) and (max-width: 979px) {
    .row-fluid > [class*=span]:nth-child(2n+1) {
      clear: both;
      margin-left: 0;
    }
}

答案 1 :(得分:4)

添加到Emilie的答案中,您还需要重置列的宽度,

@media (min-width: 768px) and (max-width: 979px) {
    .row-fluid > [class*=span]:nth-child(2n+1) {
        clear: both;
        margin-left: 0;
    }

    .row-fluid .span3 {
        width: 48.61878453038674%;
    }
}

答案 2 :(得分:1)

您只需要在与平板电脑相对应的@media查询中覆盖跨度的CSS。

所以你可以尝试这样的事情:

// Tablets & small desktops only
@media (min-width: 768px) and (max-width: 979px) {
  [class*=span] {
    width: 50%;
  }
}

当然,可能需要进行调整。由于填充和边距,宽度实际上可能不是50%。

答案 3 :(得分:0)

嗯。我在CSS中尝试了这两个规则,但它们都没有为我工作。令人遗憾的是,BS 2.0中缺少这一点。我希望他们将它添加到BS 3.0中!

谢谢,

JK