css - 水平居中的 Bootstrap 列

标签 css twitter-bootstrap

JSFIDDLE

我有一个案例,我希望我的 bootstrap 列本身水平居中。

为此,我使用了以下规则

CSS:

div[class^=col-] {
  float: none;/* Overwrites float left */
  display: inline-block;
  vertical-align: top;
  width: 25%;
} 

那么如果有 4 列,它们应该排成一行。如果有 3 列,那么它们应该居中。

HTML:

<!-- The fourth column falls down -->
<div class='row text-center'>
    <div class="col-xs-3 col-1">Hi</div>
    <div class="col-xs-3 col-2">Hi</div>
    <div class="col-xs-3 col-2">Hi</div>
    <div class="col-xs-3 col-2">Hi</div>
</div>
<!-- Works Fine and centers the columns -->    
<div class='row text-center'>
    <div class="col-xs-3 col-1">Hi</div>
    <div class="col-xs-3 col-2">Hi</div>
    <div class="col-xs-3 col-2">Hi</div>
</div>

如果我只有 1,2 或 3 列,它工作正常,但当我得到 4 列时,其中一列会下降到一个新行。为了解决这个问题,我尝试将宽度减小为 24.7%。但这同样不适用于所有屏幕。所以我必须不断改变宽度。

我很想知道为什么宽度 25% 没有占用 25% 宽度并下降。以及如何解决这个问题并始终以它们为中心。

JSFIDDLE

最佳答案

请删除:

div[class^=col-] {
    float: none;/* Overwrites float left */
    display: inline-block;
    vertical-align: top;
    width: 25%;
}

你可以添加到 .row 类:

.row {
    display: flex;
    justify-content: center;
} 

如果您使用的是 bootstrap v4,则添加了 flexbox 类,您可以使用它们: https://v4-alpha.getbootstrap.com/utilities/flexbox/

关于css - 水平居中的 Bootstrap 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42924465/

相关文章:

css - 将类行为复制到第二类(twitter bootstrap)

html - 幻灯片下拉打开

css - 如何使 Bootstrap 侧边栏折叠不改变内容宽度?

javascript - 无法创建 Bootstrap 交换机 (v2.0)

jquery - 更改 li 内 span 内内容的 css

css - H5BP & 1140 网格脚本

css - DIV 背景图像在 Firefox 或 Chrome 中不显示(但仅在线)。在线它适用于 IE 吗?

css - Bootstrap 中奇怪的 CSS 效果。在容器 div 中显示大量内容 div 时意外缩进

html - 防止 Twitter Bootstrap .span2 在响应式布局中调整大小

html - <p> 元素颜色错误