更新资料
从BS3开始,有一个.center-block
帮助器类。从文档:
.center-block {
display: block;
margin-left: auto;
margin-right: auto;
}
.element {
.center-block();
}
在这个看似简单的问题中隐藏着复杂性。给出的所有答案都有一些问题。
1.创建一个自定义类(主要知识)
创建.col-centred
类,但是有一个主要陷阱。
.col-centred {
float: none !important;
margin: 0 auto;
}
<div class="col-lg-6 col-centred">
Centred content.
</div>
<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(主要问题)
<div class="col-lg-6 col-lg-offset-3">
Centred content.
</div>
<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>
margin: 0 auto;
到span7
。