更新
从 BS3 开始,有一个 .center-block 助手类。来自文档:
// Classes
.center-block {
display: block;
margin-left: auto;
margin-right: auto;
}
// Usage as mixins
.element {
.center-block();
}
这个看似简单的问题隐藏着复杂性。所有给出的答案都有一些问题。
1。创建自定义类(主要问题)
创建.col-centred 类,但有一个主要问题。
.col-centred {
float: none !important;
margin: 0 auto;
}
<!-- Bootstrap 3 -->
<div class="col-lg-6 col-centred">
Centred content.
</div>
<!-- Bootstrap 2 -->
<div class="span-6 col-centred">
Centred content.
</div>
陷阱
Bootstrap 要求列的总和为 12。如果不这样做,它们将重叠,这是一个问题。在这种情况下,居中的列将与其上方的列重叠。从视觉上看,页面可能看起来相同,但鼠标事件在重叠的列上不起作用(例如,您不能悬停或单击链接)。这是因为鼠标事件注册在与您尝试单击的元素重叠的居中列上。
修复
您可以使用clearfix 元素解决此问题。使用z-index 将居中的列置于底部将不起作用,因为它本身会重叠,因此鼠标事件将对其起作用。
<div class="row">
<div class="col-lg-12">
I get overlapped by `col-lg-7 centered` unless there's a clearfix.
</div>
<div class="clearfix"></div>
<div class="col-lg-7 centred">
</div>
</div>
或者您可以将居中的列隔离在自己的行中。
<div class="row">
<div class="col-lg-12">
</div>
</div>
<div class="row">
<div class="col-lg-7 centred">
Look I am in my own row.
</div>
</div>
2。使用 col-lg-offset-x 或 spanx-offset(主要问题)
<!-- Bootstrap 3 -->
<div class="col-lg-6 col-lg-offset-3">
Centred content.
</div>
<!-- Bootstrap 2 -->
<div class="span-6 span-offset-3">
Centred content.
</div>
第一个问题是居中的列必须是偶数,因为偏移值必须除以 2 才能使布局居中(左/右)。
其次,正如一些人评论的那样,使用偏移量是一个坏主意。这是因为当浏览器调整大小时,偏移量会变成空白,将实际内容推到页面下方。
3。创建一个内部居中的列
这是我认为的最佳解决方案。根据解决方案 1 和 2,无需破解,也不会乱用网格,这可能会导致意想不到的后果。
.col-centred {
margin: 0 auto;
}
<div class="row">
<div class="col-lg-12">
<div class="centred">
Look I am in my own row.
</div>
</div>
</div>