Bootstrap 提供了一套響應式、移動裝置優先的流式網格系統,随着螢幕或視口(viewport)尺寸的增加,系統會自動分為最多 12 列。
我們也可以根據自己的需要,定義列數:
1
4
8
6
12
Bootstrap 5 的網格系統是響應式的,列會根據螢幕大小自動重新排列。
請確定每一行中列的總和等于或小于 12。
Bootstrap 5 網格系統有以下 6 個類:
.col- 針對所有裝置。
.col-sm- 平闆 - 螢幕寬度等于或大于 576px。
.col-md- 桌面顯示器 - 螢幕寬度等于或大于 768px。
.col-lg- 大桌面顯示器 - 螢幕寬度等于或大于 992px。
.col-xl- 特大桌面顯示器 - 螢幕寬度等于或大于 1200px。
.col-xxl- 超大桌面顯示器 - 螢幕寬度等于或大于 1400px。
Bootstrap5 網格系統規則:
網格每一行需要放在設定了 <code>.container</code> (固定寬度) 或 <code>.container-fluid</code> (全屏寬度) 類的容器中,這樣就可以自動設定一些外邊距與内邊距。
使用行來建立水準的列組。
内容需要放置在列中,并且隻有列可以是行的直接子節點。
預定義的類如 .row 和 .col-sm-4 可用于快速制作網格布局。
列通過填充建立列内容之間的間隙。 這個間隙是通過 .rows 類上的負邊距設定第一行和最後一列的偏移。
網格列是通過跨越指定的 12 個列來建立。 例如,設定三個相等的列,需要使用三個 .col-sm-4 來設定。
Bootstrap 5 和 Bootstrap 4 使用 flexbox(彈性盒子) 而不是浮動。
Flexbox 的一大優勢是,沒有指定寬度的網格列将自動設定為等寬與等高列 。 如果您想了解有關 Flexbox 的更多資訊,可以閱讀我們的 CSS Flexbox 教程 。
下表總結了 Bootstrap 網格系統如何在不同裝置上工作的:
超小裝置
<576px
平闆
≥576px
桌面顯示器
≥768px
大桌面顯示器
≥992px
特大桌面顯示器
≥1200px
超大桌面顯示器
≥1400px
容器最大寬度
None (auto)
540px
720px
960px
1140px
1320px
類字首
<code>.col-</code>
<code>.col-sm-</code>
<code>.col-md-</code>
<code>.col-lg-</code>
<code>.col-xl-</code>
<code>.col-xxl-</code>
列數量和
間隙寬度
1.5rem
(一個列的每邊分别 .75rem)
可嵌套
Yes
列排序
我們将上述的類組合使用,進而建立更靈活的頁面布局。
提示:每個類都是按比例放大的,是以如果你想設定 sm 和 md 具有相同的寬度,你隻需要指定 sm 即可。
以下代碼為 Bootstrap 5 網格的基本結構:
<!-- 第一個例子:控制列的寬度及在不同的裝置上如何顯示 -->
<div class="row">
<div class="col-*-*"></div>
</div>
<!-- 第二個例子:或讓 Bootstrap 者自動處理布局 -->
<div class="col"></div>
第一個例子:建立一行(<b><div</b>
class="row">)。然後, 添加需要的列(
<b>.col-*-*</b> 類中設定)。 第一個星号 (*)
表示響應的裝置: sm, md, lg 或 xl, 第二個星号 (*) 表示一個數字, 同一行的數字相加為 12。
第二個例子: 不在每個 <b>col</b> 上添加數字,讓 bootstrap 自動處理布局,同一行的每個列寬度相等: 兩個 <b>"col"</b> ,每個就為 50% 的寬度。三個 <b>"col"</b>每個就為 33.33% 的寬度,四個 <b>"col"</b>每個就為 25% 的寬度,以此類推。同樣,你可以使用 <b>.col-sm|md|lg|xl</b> 來設定列的響應規則。
接下來我們可以看看執行個體。
<div class="col">.col</div>
以下執行個體示範了如何在平闆及更大螢幕上建立等寬度的響應式列。 在移動裝置上,即螢幕寬度小于 576px 時,四個列将會上下堆疊排版:
<div class="col-sm-3">.col-sm-3</div>
以下執行個體示範了在平闆及更大螢幕上建立不等寬度的響應式列。 在移動裝置上,即螢幕寬度小于 576px 時,兩個列将會上下堆疊排版:
<div class="col-sm-4">.col-sm-4</div>
<div class="col-sm-8">.col-sm-8</div>
以下執行個體示範了在桌面裝置的顯示器上兩個列的寬度各占 50%,如果在平闆端則左邊的寬度為 25%,右邊的寬度為 75%, 在移動手機等小型裝置上會堆疊顯示。
<div class="container-fluid">
<div class="col-sm-3 col-md-6">
<p>RUNOOB</p>
<div class="col-sm-9 col-md-6">
<p>菜鳥教程</p>
以下執行個體在平闆、桌面、大桌面顯示器、超大桌面顯示器的寬度比例為分别為:25%/75%、50%/50%、33.33%/66.67%、16.67/83.33%, 在移動手機等小型裝置上會堆疊顯示。
<div class="col-sm-3 col-md-6 col-lg-4 col-xl-2">
<div class="col-sm-9 col-md-6 col-lg-8 col-xl-10">
偏移列通過 offset-*-* 類來設定。第一個星号( * )可以是 sm、md、lg、xl,表示螢幕裝置類型,第二個星号( * )可以是 <b>1</b> 到 <b>11</b> 的數字。
為了在大螢幕顯示器上使用偏移,請使用 <b>.offset-md-*</b> 類。這些類會把一個列的左外邊距(margin)增加 <b>*</b> 列,其中 <b>*</b> 範圍是從 <b>1</b> 到 <b>11</b>。
例如:.offset-md-4 是把.col-md-4 往右移了四列格。
<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 class="col-md-3 offset-md-3">.col-md-3 .offset-md-3</div>
<div class="col-md-6 offset-md-3">.col-md-6 .offset-md-3</div>