使用 Twitter Bootstrap 3 居中列

新手上路,请多包涵

如何在 Twitter Bootstrap 3 中的容器(12 列)中将一列大小的 div 居中?

 .centered {
  background-color: red;
}
 <!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<body class="container">
  <div class="col-lg-1 col-offset-6 centered">
    <img data-src="holder.js/100x100" alt="" />
  </div>
</body>

我想要一个 div ,其类 .centered 在容器内居中。如果有多个 div s,我可以使用一行,但现在我只想要一个 div 一个列的大小在容器内居中(12列)。

我也不确定上述方法是否足够好,因为其目的不是将 div 偏移一半。我不需要 --- 之外的空闲空间和 div div 的内容按比例缩小。我想 在 div 之外留出空间以均匀分布(缩小到容器宽度等于一列)。

原文由 bsr 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 713
2 个回答

在 Bootstrap 3 中,有两种方法可以使列 <div> 居中:

方法 1(偏移量):

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

在标记中,这看起来像:

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

现在,这种方法有一个明显的缺点。 It only works for even column sizes , so only .col-X-2 , .col-X-4 , col-X-6 , col-X-8 , and col-X-10 支持。


方法 2(旧的 margin:auto

您可以使用经过验证的 margin: 0 auto; 技术来 居中任何列大小。您只需要处理 Bootstrap 的网格系统添加的浮动即可。我建议定义一个自定义 CSS 类,如下所示:

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

现在您可以将它添加到任何屏幕大小的任何列大小,并且它将与 Bootstrap 的响应式布局无缝协作:

 <div class="row">
    <div class="col-lg-1 col-centered"></div>
</div>

注意: 使用这两种技术,您可以跳过 .row 元素并将列居中在 .container 内,但是您会注意到实际列大小的微小差异,因为容器类。


更新:

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

原文由 omma2289 发布,翻译遵循 CC BY-SA 4.0 许可协议

居中列 的首选方法是使用“偏移量”(即: col-md-offset-3

Bootstrap 3.x 居中示例

对于 居中元素,有一个 center-block 辅助类

您还可以使用 text-center文本(和内联元素)居中

响应演示http ://bootply.com/91632

编辑-如评论中所述, center-block 适用于列内容和 display:block 元素,但不适用于列本身( col-* )使用 float


2020 年更新

现在有了 Bootstrap 4居中 方法已经改变了..

  • text-center 仍然用于 display:inline 元素
  • mx-auto 替换 center-block 居中 display:block 元素
  • offset-* mx-auto 可用于居中网格列

mx-auto (auto x-axis margins) will center display:block or display:flex elements that have a defined width , ( % , vw , px 等..)。网格列 默认使用 Flexbox ,因此也有各种 Flexbox 居中方式。

演示 Bootstrap 4 水平居中

对于 BS4 中的垂直居中,请参阅 https://stackoverflow.com/a/41464397/171456

原文由 Zim 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题