Bootstrap 提供了一套響應(yīng)式、移動設(shè)備優(yōu)先的流式網(wǎng)格系統(tǒng),隨著屏幕或視口(viewport)尺寸的增加,系統(tǒng)會自動分為最多 12 列。
我們也可以根據(jù)自己的需要,定義列數(shù):
Bootstrap 5 的網(wǎng)格系統(tǒng)是響應(yīng)式的,列會根據(jù)屏幕大小自動重新排列。
請確保每一行中列的總和等于或小于 12。
Bootstrap 5 網(wǎng)格系統(tǒng)有以下 6 個類:
Bootstrap5 網(wǎng)格系統(tǒng)規(guī)則:
下表總結(jié)了 Bootstrap 網(wǎng)格系統(tǒng)如何在不同設(shè)備上工作的:
超小設(shè)備
<576px |
平板
≥576px |
桌面顯示器
≥768px |
大桌面顯示器
≥992px |
特大桌面顯示器
≥1200px |
超大桌面顯示器
≥1400px |
|
---|---|---|---|---|---|---|
容器最大寬度 | None (auto) | 540px | 720px | 960px | 1140px | 1320px |
類前綴 | .col-
|
.col-sm-
|
.col-md-
|
.col-lg-
|
.col-xl-
|
.col-xxl-
|
列數(shù)量和 | 12 | |||||
間隙寬度 | 1.5rem (一個列的每邊分別 .75rem) | |||||
可嵌套 | Yes | |||||
列排序 | Yes |
我們將上述的類組合使用,從而創(chuàng)建更靈活的頁面布局。
提示:每個類都是按比例放大的,所以如果你想設(shè)置 sm 和 md 具有相同的寬度,你只需要指定 sm 即可。
以下代碼為 Bootstrap 5 網(wǎng)格的基本結(jié)構(gòu):
<!-- 第一個例子:控制列的寬度及在不同的設(shè)備上如何顯示 -->
<div class="row">
<div class="col-*-*"></div>
</div>
<div class="row">
<div class="col-*-*"></div>
<div class="col-*-*"></div>
<div class="col-*-*"></div>
</div>
<!-- 第二個例子:或讓 Bootstrap 者自動處理布局 -->
<div class="row">
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
</div>
第一個例子:創(chuàng)建一行(<div class="row">)。然后, 添加需要的列( .col-*-* 類中設(shè)置)。 第一個星號 (*) 表示響應(yīng)的設(shè)備: sm, md, lg 或 xl, 第二個星號 (*) 表示一個數(shù)字, 同一行的數(shù)字相加為 12。
第二個例子: 不在每個 col 上添加數(shù)字,讓 bootstrap 自動處理布局,同一行的每個列寬度相等: 兩個 "col" ,每個就為 50% 的寬度。三個 "col"每個就為 33.33% 的寬度,四個 "col"每個就為 25% 的寬度,以此類推。同樣,你可以使用 .col-sm|md|lg|xl 來設(shè)置列的響應(yīng)規(guī)則。
接下來我們可以看看實例。
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap5 實例</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="stylesheet">
<script src="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/js/bootstrap.bundle.min.js" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></script>
</head>
<body>
<div class="container-fluid mt-3">
<h1>創(chuàng)建相等寬度的列</h1>
<p>創(chuàng)建三個相等寬度的列! 嘗試在 class="row" 的 div 中添加新的 class="col" div,會顯示四個等寬的列。</p>
<div class="row">
<div class="col p-3 bg-primary text-white">.col</div>
<div class="col p-3 bg-dark text-white">.col</div>
<div class="col p-3 bg-primary text-white">.col</div>
</div>
</div>
</body>
</html>
以下實例演示了如何在平板及更大屏幕上創(chuàng)建等寬度的響應(yīng)式列。 在移動設(shè)備上,即屏幕寬度小于 576px 時,四個列將會上下堆疊排版:
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap5 實例</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="stylesheet">
<script src="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/js/bootstrap.bundle.min.js" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></script>
</head>
<body>
<div class="container-fluid mt-3">
<h1>等寬響應(yīng)式列</h1>
<p>重置瀏覽器大小查效果。</p>
<p> 在移動設(shè)備上,即屏幕寬度小于 576px 時,四個列將會上下堆疊排版。</p>
<div class="row">
<div class="col-sm-3 p-3 bg-primary text-white">.col</div>
<div class="col-sm-3 p-3 bg-dark text-white">.col</div>
<div class="col-sm-3 p-3 bg-primary text-white">.col</div>
<div class="col-sm-3 p-3 bg-dark text-white">.col</div>
</div>
</div>
</body>
</html>
以下實例演示了在平板及更大屏幕上創(chuàng)建不等寬度的響應(yīng)式列。 在移動設(shè)備上,即屏幕寬度小于 576px 時,兩個列將會上下堆疊排版:
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap5 實例</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="stylesheet">
<script src="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/js/bootstrap.bundle.min.js" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></script>
</head>
<body>
<div class="container-fluid mt-3">
<h1>不等寬響應(yīng)式列</h1>
<p>重置瀏覽器大小查效果。</p>
<p>在移動設(shè)備上,即屏幕寬度小于 576px 時,兩個列將會上下堆疊排版。</p>
<div class="row">
<div class="col-sm-4 p-3 bg-primary text-white">.col</div>
<div class="col-sm-8 p-3 bg-dark text-white">.col</div>
</div>
</div>
</body>
</html>
如果只設(shè)置一列的寬度,其他列會自動均分剩下的寬度。 以下實例將列寬度為 25%、50%、25%:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="external nofollow" target="_blank" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" rel="external nofollow" ></script>
</head>
<body>
<div class="container-fluid mt-3">
<h2>設(shè)置某一列寬度</h2>
<p>如果只設(shè)置一列的寬度,其他列會自動均分剩下的寬度。 以下實例將列寬度為 25%、50%、25%:</p>
<div class="row">
<div class="col bg-success">.col</div>
<div class="col-6 bg-warning">.col-6</div>
<div class="col bg-success">.col</div>
</div>
</div>
</body>
</html>
以下實例演示了在桌面設(shè)備的顯示器上兩個列的寬度各占 50%,如果在平板端則左邊的寬度為 25%,右邊的寬度為 75%, 在移動手機等小型設(shè)備上會堆疊顯示。
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap5 實例</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="stylesheet">
<script src="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/js/bootstrap.bundle.min.js" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></script>
</head>
<body>
<div class="container-fluid mt-3">
<h1>平板與桌面的網(wǎng)格布局</h1>
<p>以下實例演示了在桌面設(shè)備的顯示器上兩個列的寬度各占 50%,如果在平板端則左邊的寬度為 25%,右邊的寬度為 75%, 在移動手機等小型設(shè)備上會堆疊顯示。
</p>
<p>重置瀏覽器窗口大小,查看效果。</p>
<div class="row">
<div class="col-sm-3 col-md-6 col-lg-4 col-xl-2 p-3 bg-primary text-white">.col</div>
<div class="col-sm-9 col-md-6 col-lg-8 col-xl-10 p-3 bg-dark text-white">.col</div>
</div>
</div>
</body>
</html>
以下實例在平板、桌面、大桌面顯示器、超大桌面顯示器的寬度比例為分別為:25%/75%、50%/50%、33.33%/66.67%、16.67/83.33%, 在移動手機等小型設(shè)備上會堆疊顯示。
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap5 實例</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="stylesheet">
<script src="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/js/bootstrap.bundle.min.js" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></script>
</head>
<body>
<div class="container-fluid mt-3">
<h1>平板、桌面、大桌面顯示器、超大桌面顯示器</h1>
<p>以下實例在平板、桌面、大桌面顯示器、超大桌面顯示器的寬度比例為分別為:25%/75%、50%/50%、33.33%/66.67%、16.67/83.33%, 在移動手機等小型設(shè)備上會堆疊顯示。</p>
<p>重置瀏覽器窗口大小,查看效果。</p>
<div class="row">
<div class="col-sm-3 col-md-6 col-lg-4 col-xl-2 p-3 bg-primary text-white">.col</div>
<div class="col-sm-9 col-md-6 col-lg-8 col-xl-10 p-3 bg-dark text-white">.col</div>
</div>
</div>
</body>
</html>
以下實例創(chuàng)建兩列布局,其中一列內(nèi)嵌套著另外兩列:
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap5 實例</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="stylesheet">
<script src="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/js/bootstrap.bundle.min.js" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></script>
</head>
<body>
<div class="container-fluid mt-3">
<h2>嵌套列</h2>
<p>一個列中添加另外一個列:</p>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-8 bg-warning p-4">
.col-8
<div class="row">
<div class="col-6 bg-light p-2">.col-6</div>
<div class="col-6 bg-secondary p-2">.col-6</div>
</div>
</div>
<div class="col-4 bg-success p-4">.col-4</div>
</div>
</div>
</body>
</html>
顯示效果:
偏移列通過 offset-*-* 類來設(shè)置。第一個星號( * )可以是 sm、md、lg、xl,表示屏幕設(shè)備類型,第二個星號( * )可以是 1 到 11 的數(shù)字。
為了在大屏幕顯示器上使用偏移,請使用 .offset-md-* 類。這些類會把一個列的左外邊距(margin)增加 * 列,其中 * 范圍是從 1 到 11。
例如:.offset-md-4 是把.col-md-4 往右移了四列格。
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap5 實例</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="stylesheet">
<script src="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/js/bootstrap.bundle.min.js" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></script>
</head>
<body>
<div class="container-fluid mt-3">
<h1>偏移列</h1>
<p>.offset-md-4 是把.col-md-4 往右移了四列格。</p>
<div class="row">
<div class="col-md-4 p-3 bg-primary text-white">.col-md-4</div>
<div class="col-md-4 offset-md-4 bg-dark text-white">.col-md-4 .offset-md-4</div>
</div>
<div class="row">
<div class="col-md-3 offset-md-3 bg-primary text-white">.col-md-3 .offset-md-3</div>
<div class="col-md-3 offset-md-3 bg-dark text-white">.col-md-3 .offset-md-3</div>
</div>
<div class="row">
<div class="col-md-6 offset-md-3 bg-primary text-white">.col-md-6 .offset-md-3</div>
</div>
</div>
</body>
</html>
更多建議: