借助我们的 flexbox
网格系统,了解如何使用少数对齐、排序和偏移选项来修改列。 另外,了解如何使用列类来管理非网格元素的宽度。
对齐
使用 flexbox
对齐实用程序来垂直和水平对齐列。
垂直对齐
<div class="container"> <div class="row align-items-start"> <div class="col"> 三列之一 </div> <div class="col"> 三列之一 </div> <div class="col"> 三列之一 </div> </div> <div class="row align-items-center"> <div class="col"> 三列之一 </div> <div class="col"> 三列之一 </div> <div class="col"> 三列之一 </div> </div> <div class="row align-items-end"> <div class="col"> 三列之一 </div> <div class="col"> 三列之一 </div> <div class="col"> 三列之一 </div> </div> </div>
<div class="container"> <div class="row"> <div class="col align-self-start"> 三列之一 </div> <div class="col align-self-center"> 三列之一 </div> <div class="col align-self-end"> 三列之一 </div> </div> </div>
水平对齐
<div class="container"> <div class="row justify-content-start"> <div class="col-4"> 两列中的一列 </div> <div class="col-4"> 两列中的一列 </div> </div> <div class="row justify-content-center"> <div class="col-4"> 两列中的一列 </div> <div class="col-4"> 两列中的一列 </div> </div> <div class="row justify-content-end"> <div class="col-4"> 两列中的一列 </div> <div class="col-4"> 两列中的一列 </div> </div> <div class="row justify-content-around"> <div class="col-4"> 两列中的一列 </div> <div class="col-4"> 两列中的一列 </div> </div> <div class="row justify-content-between"> <div class="col-4"> 两列中的一列 </div> <div class="col-4"> 两列中的一列 </div> </div> <div class="row justify-content-evenly"> <div class="col-4"> 两列中的一列 </div> <div class="col-4"> 两列中的一列 </div> </div> </div>
列换行
如果单行中放置了超过 12 列,则每组额外的列将作为一个单元换行。
由于 9 + 4 = 13 > 12, 这个 4-列-宽的 div 将作为一个连续单元换行。
后续列沿新行继续。
<div class="container"> <div class="row"> <div class="col-9">.col-9</div> <div class="col-4">.col-4<br>Since 9 + 4 = 13 > 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.</div> <div class="col-6">.col-6<br>Subsequent columns continue along the new line.</div> </div> </div>
分栏
在 flexbox
中将列拆分为新行需要一个小技巧:添加一个宽度为 100% 的元素,无论您想将列换行到新行的任何位置。 通常这是通过多个 .rows
来完成的,但并不是每个实现方法都可以解决这个问题。
<div class="container"> <div class="row"> <div class="col-6 col-sm-3">.col-6 .col-sm-3</div> <div class="col-6 col-sm-3">.col-6 .col-sm-3</div> <!-- 强制下一列换行 --> <div class="w-100"></div> <div class="col-6 col-sm-3">.col-6 .col-sm-3</div> <div class="col-6 col-sm-3">.col-6 .col-sm-3</div> </div> </div>
您还可以使用我们的响应式显示实用程序在特定拐点处应用此中断。
<div class="container"> <div class="row"> <div class="col-6 col-sm-4">.col-6 .col-sm-4</div> <div class="col-6 col-sm-4">.col-6 .col-sm-4</div> <!-- 强制下一列在 md 拐点和向上换行 --> <div class="w-100 d-none d-md-block"></div> <div class="col-6 col-sm-4">.col-6 .col-sm-4</div> <div class="col-6 col-sm-4">.col-6 .col-sm-4</div> </div> </div>
重新排序
排序类
使用 .order-classes
来控制内容的视觉顺序。 这些类是响应式的,因此您可以通过拐点设置顺序(例如,.order-1
.order-md-2
)。 包括对所有六个网格层的 1 到 5 的支持。
<div class="container"> <div class="row"> <div class="col"> 第一个在DOM中,没有应用顺序 </div> <div class="col order-5"> 第二个在DOM中, 顺序更大 </div> <div class="col order-1"> 第三个在DOM中, 顺序为 1 </div> </div> </div>
还有响应式 .order-first
和 .order-last
类,它们分别通过应用 order: -1
和 order: 6
来改变元素的顺序。这些类也可以根据需要与编号的 .order-*
类混合使用。
<div class="container"> <div class="row"> <div class="col order-last"> 第一个在DOM中, 排序最后 </div> <div class="col"> 第二个在DOM中, 无序的 </div> <div class="col order-first"> 第三个在DOM中, 排序第一 </div> </div> </div>
偏移列
您可以通过两种方式偏移网格列:我们的响应式 .offset-grid
类和我们的边距实用程序。 网格类的大小与列匹配,而边距对于偏移宽度可变的快速布局更有用。
偏移类
使用 .offset-md-*
类将列向右移动。 这些类将列的左边距增加 *
列。 例如,.offset-md-4
将 .col-md-4
移动到四列。
<div class="container"> <div class="row"> <div class="col-md-4">.col-md-4</div> <div class="col-md-4 offset-md-4">.col-md-4 .offset-md-4</div> </div> <div class="row"> <div class="col-md-3 offset-md-3">.col-md-3 .offset-md-3</div> <div class="col-md-3 offset-md-3">.col-md-3 .offset-md-3</div> </div> <div class="row"> <div class="col-md-6 offset-md-3">.col-md-6 .offset-md-3</div> </div> </div>
除了在响应拐点处清除列之外,您可能还需要重置偏移量。 请参阅网格示例中的实际操作。
<div class="container"> <div class="row"> <div class="col-sm-5 col-md-6">.col-sm-5 .col-md-6</div> <div class="col-sm-5 offset-sm-2 col-md-6 offset-md-0">.col-sm-5 .offset-sm-2 .col-md-6 .offset-md-0</div> </div> <div class="row"> <div class="col-sm-6 col-md-5 col-lg-6">.col-sm-6 .col-md-5 .col-lg-6</div> <div class="col-sm-6 col-md-5 offset-md-2 col-lg-6 offset-lg-0">.col-sm-6 .col-md-5 .offset-md-2 .col-lg-6 .offset-lg-0</div> </div> </div>
边距
随着 v4 中向 flexbox
的迁移,您可以使用诸如 .me-auto
之类的边距实用程序来强制兄弟列彼此远离。
<div class="container"> <div class="row"> <div class="col-md-4">.col-md-4</div> <div class="col-md-4 ms-auto">.col-md-4 .ms-auto</div> </div> <div class="row"> <div class="col-md-3 ms-md-auto">.col-md-3 .ms-md-auto</div> <div class="col-md-3 ms-md-auto">.col-md-3 .ms-md-auto</div> </div> <div class="row"> <div class="col-auto me-auto">.col-auto .me-auto</div> <div class="col-auto">.col-auto</div> </div> </div>
独立列类
.col-*
类也可以在 .row
之外使用,以赋予元素特定的宽度。 每当列类用作行的非直接子级时,填充将被省略。
<div class="col-3 bg-light p-3 border"> .col-3: 25% 的宽度 </div> <div class="col-sm-9 bg-light p-3 border"> .col-sm-9: sm 拐点以上 75% 的宽度 </div>
这些类可以与实用程序一起使用来创建响应式浮动图像。 如果文本较短,请确保将内容包装在 .clearfix
包装器中以清除浮动。
从来极富、极贵、极畅适田地,说来也使人心快,听来也使人耳快,看来也使人眼快;只是一场冷落败坏根基,都藏在里边,不做千古骂名,定是一番笑话。馆娃宫、铜雀台,惹了多少词人墨客,嗟呀嘲诮。止有草泽英雄,他不在酒色上安身立命,受尽的都是落寞凄其,倒会把这千人弄出来的败局,或是收拾,或是更新,这名姓可常存天地。但他名姓虽是后来彰显,他骨格却也平时定了。
譬如日月;他本体自是光明,撞在轻烟薄雾中,毕竟光芒射出,苦是人不识得;就到后来称颂他的,形之纸笔,总只说得他建功立业的事情,说不到他微时光景。不知松柏,生来便有参天形势;虎豹小时,便有食牛气概。说来反党新奇。我未题这人,且把他当日遭际的时节,略一铺排。这番勾引那人出来,成一本史书,写不到人间并不曾知得的一种奇谈。可是:器当盘错方知利,刃解宽髀始觉神。由来人定天能胜,为借奇才一起屯。
从古相沿,剥中有复:虞、夏、周、秦、汉、三国、两晋。晋自五马渡江,天下分而为二:这叫做南北朝。南朝刘裕,篡晋称宋;萧道成篡宋称齐;肃衍篡齐称梁;陈霸先篡梁称陈。虽然各有国号,绍袭正统,名为天子;其实天下微弱,偏安江左。北朝在晋时,中原一带地方,到被汉主刘渊、赵主石勒、秦主苻坚、燕主慕容囗、魏主拓技珪诸胡人据了,叫做五胡乱华,是为北朝。
<div class="clearfix"> <img src="..." class="col-md-6 float-md-end mb-3 ms-md-3" height="210" alt="..."> <p>从来极富、极贵、极畅适田地,说来也使人心快,听来也使人耳快,看来也使人眼快;只是一场冷落败坏根基,都藏在里边,不做千古骂名,定是一番笑话。馆娃宫、铜雀台,惹了多少词人墨客,嗟呀嘲诮。止有草泽英雄,他不在酒色上安身立命,受尽的都是落寞凄其,倒会把这千人弄出来的败局,或是收拾,或是更新,这名姓可常存天地。但他名姓虽是后来彰显,他骨格却也平时定了。</p> <p>譬如日月;他本体自是光明,撞在轻烟薄雾中,毕竟光芒射出,苦是人不识得;就到后来称颂他的,形之纸笔,总只说得他建功立业的事情,说不到他微时光景。不知松柏,生来便有参天形势;虎豹小时,便有食牛气概。说来反党新奇。我未题这人,且把他当日遭际的时节,略一铺排。这番勾引那人出来,成一本史书,写不到人间并不曾知得的一种奇谈。可是:器当盘错方知利,刃解宽髀始觉神。由来人定天能胜,为借奇才一起屯。</p> <p>从古相沿,剥中有复:虞、夏、周、秦、汉、三国、两晋。晋自五马渡江,天下分而为二:这叫做南北朝。南朝刘裕,篡晋称宋;萧道成篡宋称齐;肃衍篡齐称梁;陈霸先篡梁称陈。虽然各有国号,绍袭正统,名为天子;其实天下微弱,偏安江左。北朝在晋时,中原一带地方,到被汉主刘渊、赵主石勒、秦主苻坚、燕主慕容囗、魏主拓技珪诸胡人据了,叫做五胡乱华,是为北朝。</p> </div>