跳到主要內容 跳到文檔導航
Check

借助我們的 flexbox 網格系統,了解如何使用少數對齊、排序和偏移選項來修改列。另外,了解如何使用列類來管理非網格元素的寬度。

小心!在深入了解如何修改和自定義網格列之前, 請務必先 閱讀網格頁面。

他們是如何工作的

  • 列建立在網格的 flexbox 架構之上。Flexbox 意味著我們可以選擇在行級別更改單個列和修改列組。您可以選擇列如何增長、縮小或以其他方式更改。

  • 構建網格佈局時,所有內容都按列顯示。Bootstrap 網格的層次結構從容器到行到列再到您的內容。在極少數情況下,您可以將內容和專欄結合起來,但請注意可能會產生意想不到的後果。

  • Bootstrap 包含用於創建快速響應式佈局的預定義類。每個網格層都有六個斷點和十幾個列,我們已經為您構建了幾十個類來創建您想要的佈局。如果您願意,可以通過 Sass 禁用此功能。

結盟

使用 flexbox 對齊實用程序來垂直和水平對齊列。

垂直對齊

三列之一
三列之一
三列之一
三列之一
三列之一
三列之一
三列之一
三列之一
三列之一
html
<div class="container text-center">
  <div class="row align-items-start">
    <div class="col">
      One of three columns
    </div>
    <div class="col">
      One of three columns
    </div>
    <div class="col">
      One of three columns
    </div>
  </div>
  <div class="row align-items-center">
    <div class="col">
      One of three columns
    </div>
    <div class="col">
      One of three columns
    </div>
    <div class="col">
      One of three columns
    </div>
  </div>
  <div class="row align-items-end">
    <div class="col">
      One of three columns
    </div>
    <div class="col">
      One of three columns
    </div>
    <div class="col">
      One of three columns
    </div>
  </div>
</div>
三列之一
三列之一
三列之一
html
<div class="container text-center">
  <div class="row">
    <div class="col align-self-start">
      One of three columns
    </div>
    <div class="col align-self-center">
      One of three columns
    </div>
    <div class="col align-self-end">
      One of three columns
    </div>
  </div>
</div>

水平對齊

兩列之一
兩列之一
兩列之一
兩列之一
兩列之一
兩列之一
兩列之一
兩列之一
兩列之一
兩列之一
兩列之一
兩列之一
html
<div class="container text-center">
  <div class="row justify-content-start">
    <div class="col-4">
      One of two columns
    </div>
    <div class="col-4">
      One of two columns
    </div>
  </div>
  <div class="row justify-content-center">
    <div class="col-4">
      One of two columns
    </div>
    <div class="col-4">
      One of two columns
    </div>
  </div>
  <div class="row justify-content-end">
    <div class="col-4">
      One of two columns
    </div>
    <div class="col-4">
      One of two columns
    </div>
  </div>
  <div class="row justify-content-around">
    <div class="col-4">
      One of two columns
    </div>
    <div class="col-4">
      One of two columns
    </div>
  </div>
  <div class="row justify-content-between">
    <div class="col-4">
      One of two columns
    </div>
    <div class="col-4">
      One of two columns
    </div>
  </div>
  <div class="row justify-content-evenly">
    <div class="col-4">
      One of two columns
    </div>
    <div class="col-4">
      One of two columns
    </div>
  </div>
</div>

列換行

如果單行中放置了超過 12 列,則每組額外的列將作為一個單元換行。

.col-9
.col-4
由於 9 + 4 = 13 > 12,這個 4 列寬的 div 作為一個連續單元被換行到一個新行上。
.col-6
後續列沿新行繼續。
html
<div class="container">
  <div class="row">
    <div class="col-9">.col-9</div>
    <div class="col-4">.col-4<br>Since 9 + 4 = 13 &gt; 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 中將列換行需要一個小技巧:width: 100%在您想要將列換行的任何位置添加一個元素。通常這是通過多個.rows 來完成的,但並不是每個實現方法都可以解決這個問題。

.col-6 .col-sm-3
.col-6 .col-sm-3
.col-6 .col-sm-3
.col-6 .col-sm-3
html
<div class="container text-center">
  <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>

    <!-- Force next columns to break to new line -->
    <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>

您還可以使用我們的響應式顯示實用程序在特定斷點應用此中斷。

.col-6 .col-sm-4
.col-6 .col-sm-4
.col-6 .col-sm-4
.col-6 .col-sm-4
html
<div class="container text-center">
  <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>

    <!-- Force next columns to break to new line at md breakpoint and up -->
    <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-類來控制內容的視覺順序。這些類是響應式的,因此您可以設置order斷點(例如,.order-1.order-md-2)。包括對所有六個網格層1的支持。5

首先在 DOM 中,沒有應用順序
在 DOM 中排名第二,順序更大
DOM 中的第三個,順序為 1
html
<div class="container text-center">
  <div class="row">
    <div class="col">
      First in DOM, no order applied
    </div>
    <div class="col order-5">
      Second in DOM, with a larger order
    </div>
    <div class="col order-1">
      Third in DOM, with an order of 1
    </div>
  </div>
</div>

還有響應式.order-first.order-last類,它們分別通過應用和來改變order元素的。這些類也可以根據需要與編號的類混合。order: -1order: 6.order-*

DOM 中的第一個,最後排序
DOM 中的第二個,無序
在 DOM 中排在第三位,排在第一位
html
<div class="container text-center">
  <div class="row">
    <div class="col order-last">
      First in DOM, ordered last
    </div>
    <div class="col">
      Second in DOM, unordered
    </div>
    <div class="col order-first">
      Third in DOM, ordered first
    </div>
  </div>
</div>

偏移列

您可以通過兩種方式偏移網格列:我們的響應.offset-式網格類和我們的邊距實用程序。網格類的大小與列匹配,而邊距對於偏移寬度可變的快速佈局更有用。

偏移類

使用類將列向右移動.offset-md-*。這些類逐列增加一列的左邊距*。例如,.offset-md-4移動.col-md-4四列。

.col-md-4
.col-md-4 .offset-md-4
.col-md-3 .offset-md-3
.col-md-3 .offset-md-3
.col-md-6 .offset-md-3
html
<div class="container text-center">
  <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>

除了在響應斷點處清除列之外,您可能還需要重置偏移量。請參閱網格示例中的實際操作。

.col-sm-5 .col-md-6
.col-sm-5 .offset-sm-2 .col-md-6 .offset-md-0
.col-sm-6 .col-md-5 .col-lg-6
.col-sm-6 .col-md-5 .offset-md-2 .col-lg-6 .offset-lg-0
html
<div class="container text-center">
  <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強制兄弟列彼此遠離。

.col-md-4
.col-md-4 .ms-自動
.col-md-3 .ms-md-auto
.col-md-3 .ms-md-auto
.col-auto .me-auto
.col-auto
html
<div class="container text-center">
  <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-*類也可以在 a 之外使用.row來給元素一個特定的寬度。每當列類用作行的非直接子級時,填充將被省略。

.col-3:寬度為 25%
.col-sm-9: sm 斷點上方 75% 的寬度
html
<div class="col-3 bg-light p-3 border">
  .col-3: width of 25%
</div>
<div class="col-sm-9 bg-light p-3 border">
  .col-sm-9: width of 75% above sm breakpoint
</div>

這些類可以與實用程序一起使用來創建響應式浮動圖像。.clearfix如果文本較短,請確保將內容包裝在包裝器中以清除浮動。

Placeholder Responsive floated image

一段佔位符文本。我們在這裡使用它來展示 clearfix 類的使用。我們在這裡添加了很多無意義的短語來演示列如何在此處與浮動圖像交互。

如您所見,段落優雅地環繞浮動圖像。現在想像一下這裡有一些實際內容會是什麼樣子,而不僅僅是這個無聊的佔位符文本,但實際上並沒有傳達任何有形的信息。它只是佔用空間,不應該真正閱讀。

然而,在這裡,您仍然堅持閱讀此佔位符文本,希望獲得更多見解,或一些隱藏的複活節彩蛋內容。或許是個玩笑。不幸的是,這裡沒有。

html
<div class="clearfix">
  <img src="..." class="col-md-6 float-md-end mb-3 ms-md-3" alt="...">

  <p>
    A paragraph of placeholder text. We're using it here to show the use of the clearfix class. We're adding quite a few meaningless phrases here to demonstrate how the columns interact here with the floated image.
  </p>

  <p>
    As you can see the paragraphs gracefully wrap around the floated image. Now imagine how this would look with some actual content in here, rather than just this boring placeholder text that goes on and on, but actually conveys no tangible information at. It simply takes up space and should not really be read.
  </p>

  <p>
    And yet, here you are, still persevering in reading this placeholder text, hoping for some more insights, or some hidden easter egg of content. A joke, perhaps. Unfortunately, there's none of that here.
  </p>
</div>