jquery - 如何使元素居中同时保持 Bootstrap 的大小?

标签 jquery html css twitter-bootstrap styles

目前我有这样的布局:

<div class="row">
    <?php
    foreach ($card_list as $key => $card) {
        echo '<div class="col-xs-4 col-sm-3 col-md-3">';
        echo '</div>';
    }
    ?>
</div>

如果大小为 md,这将生成这样的卡片

box1 box2 box3 box4

但是,由于 <div class="col-xs-4 col-sm-3 col-md-3">是固定的,如果例如,有一些空白空间我只有 3 盒。由于盒子的数量是动态的,我可以根据数字将盒子居中吗?如果我只有 3

offset box1  box2  box3 offset

代替

 box1  box2  box3  empty area

感谢您的帮助。

最佳答案

在 Bootstrap 3 中有两种居中列的方法:

方法 1(偏移量):

第一种方法使用 Bootstrap 自己的偏移类,因此它不需要更改标记,也不需要额外的 CSS。关键是将偏移量设置为该行剩余大小的一半。因此,例如,大小为 2 的列将通过添加偏移量 5 来居中,即 (12-2)/2。 在标记中,这看起来像:

<div class="row">
<div class="col-md-2 col-md-offset-5"></div>
</div>

现在,此方法有一个明显的缺点,它仅适用于偶数列大小,因此仅适用于 .col-X-2、.col-X-4、col-X-6、支持 col-X-8 和 col-X-10。


方法二(旧的margin:auto)

您可以使用经过验证的 margin: 0 auto; 技术居中任何列大小,您只需要处理由 Bootstrap 的网格系统添加的 float 。我建议像下面这样定义自定义 CSS 类:

.col-centered{
float: none;
margin: 0 auto;
}

现在您可以将它添加到任何屏幕大小的任何列大小,并且它将与 Bootstrap 的响应式布局无缝协作: 注意:使用这两种技术,您可以跳过 .row 元素并使列在 .container 中居中,但您会注意到在由于容器类中的填充而导致的实际列大小。


更新: 从 v3.0.1 开始,Bootstrap 有一个名为 center-block 的内置类,它使用 margin: 0 auto 但缺少 float:none。您可以将其添加到您的 CSS 中以使其与网格系统一起使用。

关于jquery - 如何使元素居中同时保持 Bootstrap 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27415209/

相关文章:

jquery - 添加/删除事件类 Onclick

javascript - 将 Net 日期时间格式转换为 JavaScript 在 IE 上不起作用

html - Bootstrap nav-justified 在 IE 8,9 中不起作用。它们堆叠而不是彼此对齐

html - 带有 "TILES "的 CSS 和 DIV 3 列

css - 内部 div 填充屏幕的其余部分(受包装边距和填充限制)

html - 车身宽度未设置?

javascript - 检测用户滚动了多少

javascript - slider 和光滑轮播之间的 Jquery 文件冲突

jquery .hover 和 .delay

html - CSS - 如何将子菜单推到左侧?