因为我从来没有必要只集中一个 .col- 在一个 .row ,我在包装上设置了以下类 .row 我的目标列。
.col-
.row
.col-center > [class*="col-"] { float: none; margin-left: auto; margin-right: auto; }
例
<div class="full-container"> <div class="row col-center"> <div class="col-xs-11"> Foo </div> <div class="col-xs-11"> Bar </div> </div> </div>
引导 版本3有一个.text-center类。
只需添加此类:
text-center
它只会加载这种风格:
.text-center { text-align: center; }
例:
<div class="container-fluid"> <div class="row text-center"> <div class="col-md-12"> Bootstrap 4 is coming.... </div> </div> </div>
的 方法1: 强>
<div class="container"> <div class="row"> <div class="col-md-2 col-md-offset-5"> YOUR CONTENT </div> </div> </div>
的 方法2: 强>
CSS
.float-center{float: none;} <div class="container"> <div id="mydev" class="center-block float-center" style="width:75%;"> YOUR CONTENT </div> </div>
Bootstrap提示,示例和工具: OnAirCode
别忘了添加 !important 。然后你可以确定元素真的会在中心:
!important
.col-centered{ float: none !important; margin: 0 auto !important; }
使用Bootstrap v4,只需添加即可完成 .justify-content-center 到了 .row <div>
.justify-content-center
<div>
<div class="row justify-content-center"> <div class="col-1">centered 1 column</div> </div>
https://getbootstrap.com/docs/4.0/utilities/flex/#justify-content
试试这个
<div class="row"> <div class="col-xs-2 col-xs-offset-5"></div> </div>
你可以使用其他 col 以及喜欢 col-md-2 等
col
col-md-2
这不是我的代码,但它完美地工作(在Bootstrap 3上测试)并且我不必乱用col-offset。
的 演示: 强>
/* centered columns styles */ .col-centered { display: inline-block; float: none; /* inline-block space fix */ margin-right: -4px; background-color: #ccc; border: 1px solid #ddd; }
<div class="container"> <div class="row text-center"> <div class="col-xs-6 col-centered">Column 6</div> <div class="col-xs-6 col-centered">Column 6</div> <div class="col-xs-3 col-centered">Column 3</div> <div class="col-xs-3 col-centered">Column 3</div> <div class="col-xs-3 col-centered">Column 3</div> </div> </div>
如果将其放在行上,则内部的所有列都将居中:
.row-centered { display: flex; justify-content: space-between; }
对于那些希望将列元素置于屏幕中心的人,当你没有确切的数字来填充你的网格时,我写了一小段JavaScript来返回类名:
function colCalculator(totalNumberOfElements, elementsPerRow, screenSize) { var arrayFill = function (size, content) { return Array.apply(null, Array(size)).map(String.prototype.valueOf, content); }; var elementSize = parseInt(12 / elementsPerRow, 10); var normalClassName = 'col-' + screenSize + '-' + elementSize; var numberOfFittingElements = parseInt(totalNumberOfElements / elementsPerRow, 10) * elementsPerRow; var numberOfRemainingElements = totalNumberOfElements - numberOfFittingElements; var ret = arrayFill(numberOfFittingElements, normalClassName); var remainingSize = 12 - numberOfRemainingElements * elementSize; var remainingLeftSize = parseInt(remainingSize / 2, 10); return ret.concat(arrayFill(numberOfRemainingElements, normalClassName + ' col-' + screenSize + '-push-' + remainingLeftSize)); }
如果你有5个元素,并且你希望每行有3个元素 md 屏幕,你这样做:
md
colCalculator(5, 3, 'md') >> ["col-md-4", "col-md-4", "col-md-4", "col-md-4 col-md-push-2", "col-md-4 col-md-push-2"]
请记住,第二个参数必须可以被12分割。
这可能不是最佳答案,但还有一个更有创意的解决方案。正如koala_dev所指出的,列偏移仅适用于偶数列大小。但是,通过嵌套行,您也可以实现对齐不均匀的列。
要坚持原始问题,你想在12格的网格中居中一列1。
例如:
<div class="container"> <div class="row"> <div class="col-md-offset-5 col-md-2"> <div class="row"> <div class="col-md-offset-3 col-md-6"> centered column with that has an "original width" of 1 col </div> </div> </div> </div> </div>
看到 这个小提琴 ,请注意,你必须增加输出窗口的大小,以便看到结果,否则列将包装。
要在Bootstrap行中居中多个列 - 并且cols的数量是奇数,只需添加它 css class到该行中的所有列:
css
.many-cols-centered { // To horizontally center bootstrap odd cols, eg col-lg-9, col-md-3, works well in lg display:inline-block; float:none; }
所以在你的HTML中你有类似的东西:
<div class="row text-center"> <!-- text-center centers all text in that row --> <div class="col-lg-3 col-md-3 col-sm-3 col-xs-12 many-cols-centered"> <img src='assets/image1.jpg'> <h3>You See</h3> <p>I love coding.</p> </div> <div class="col-lg-3 col-md-3 col-sm-3 col-xs-12 many-cols-centered"> <img src='assets/image2.jpg'> <h3>You See</h3> <p>I love coding.</p> </div> <div class="col-lg-3 col-md-3 col-sm-3 col-xs-12 many-cols-centered"> <img src='assets/image3.jpg'> <h3>You See</h3> <p>I love coding.</p> </div> </div>