---
# System prepended metadata

title: Bootstrap5_w2筆記(格線系統、元件)
tags: [21 天 Bootstrap 5 新手實戰營]

---

###### tags: `21 天 Bootstrap 5 新手實戰營`
# Bootstrap5_w2筆記(格線系統、元件)

## 教學資源

影片教學 [六角 新手教學實戰營_格線系統](https://www.youtube.com/watch?v=mSp2csrvYhk&list=PLYrA-SsMvTPOX9oF6ld9RGwWlo7PceI_P&index=3)
考參考文檔 [格線系統](https://bootstrap5.hexschool.com/docs/5.0/layout/grid/)

## 格線系統 
* 格線系統的出現是為了減少 magic number
magic number 就像是寫死的大小，設計稿寫上左邊100px右邊280px，你就照寫，這樣導致css肥大，難以維護，而格線系統的出現就是為了解決此現象，也因此好的設計師應多使用格線系統來做設計會較為恰當。
* [960grid 以前解析度都是1024](**https://**)
* 格線系統關鍵字:column(欄)、gutter(間距)

row可以想像成excel中的橫向列，colunm 則是欄，一格一格就是col，col中要放入元件。 
![](https://i.imgur.com/bvQRYax.png)
以這個簡單表格來說第一行的 A~G 分別為七個 col 然後整個第一行就代表一個 row

另外 gutter 是指欄(columns)之間的間距。

> 常見的總欄數是12

## Bootstrap 5 的格線系統

排版三劍客：container 容器、 row 列、 col 欄

重點中的重點：
1. 一定要有最外面的容器 container，container內第一層不一定要是row，可以放別的東西
2. col 的外層只能是 row
3. row 裡面只能放 col
4. 其他網頁內容(元件等)請放在 col 裡面

注意：
1. 請勿調整col左右的大小!!!，**可調上下不可條左右!!**會破壞格線結構，整個壞掉。
2. 常見錯誤觀念：col 中寫 width 或左右 margin/padding
3. 常見正確觀念：col 可以加上下的 margin/padding

## 範例
* col沒寫，則依據數量自動調整
![](https://i.imgur.com/wbzRkkN.png)
![](https://i.imgur.com/lrgTAAz.png)

* col-md-2 小裝置均分，md以上給col2一等分，另外兩個均分
![](https://i.imgur.com/CQjJOBY.png)
![](https://i.imgur.com/9uWdALF.png)

* 在小裝置上滿版，md以上分三欄
![](https://i.imgur.com/8sVAasV.png)
![](https://i.imgur.com/KuLYPya.png)



## 斷點

Bootstrap 的網格系統預設會自動適應六個斷點以及您自定義的任何斷點。而這六個斷點如下：

![](https://i.imgur.com/uSxh4p1.png)

請看上方圖片 它在斷點下方有一個小字 `>= 768px` 表示 md 這個斷點是有包含 768px 在內！**斷點是>= 有包含。**

當寬度超過該數值時會套用樣式。

**範例:手機滿版 平板六欄 桌面版三欄的區塊**?

```htmlembedded=
<div class="container">
    <div class="row">
        <div class="col-12 col-md-6 col-lg-3">col</div>
        <div class="col-12 col-md-6 col-lg-3">col</div>
        <div class="col-12 col-md-6 col-lg-3">col</div>
    </div>
</div>
```

詳解：
1. 首先最外面給一個 container 
2. container 裡面放 row
3. row 裡面放 col
4. col-12 指的是佔十二欄 即滿版(因為 Bootstrap 是十二欄格線系統 超過 12 會往下掉)
5. col-md-6 指的是平板以上 佔六欄(md 就是 768px 以上的斷點)
6. col-lg-3 指的是桌面版以上 佔三欄(lg 就是 960px 以上的斷點)

* [Bootstrap Template](https://bootstrapmade.com/bootstrap-4-templates/) -一次搞懂所有格線系統用法

## 巢狀格線系統

什麼是巢狀？就是你在 col 裡面又加 row 與 col

請參考下方圖片：

![](https://i.imgur.com/yBoyRtD.png)

>　左四欄右八欄，右八欄中分成四個row各佔col-6

這時候結構就會是：
```htmlembedded=
<div class="container">
    <div class="row">
        <div class="col-4">這裡是選單</div>
        <div class="col-8">
            <div class="row">
                <div class="col-6">
                    這是產品
                </div>
                <div class="col-6">
                    這是產品
                </div>
                <div class="col-6">
                    這是產品
                </div>
                <div class="col-6">
                    這是產品
                </div>
            </div>
        </div>
    </div>
</div>
```

在 col 裡面又添加了 row ，就是所謂的巢狀。

## 範例
* 手機板隱藏側欄 桌面板打開側欄 .d-none  .d-lg-block
* 通常選單欄不會用row col設定，用navbar
  ![](https://i.imgur.com/jQ8hY6u.png)
* 儘管不是滿版設計，也可以設計大一點，多留一些距離，給自己預留些保險
  ![](https://i.imgur.com/hAOgWy4.png)


## 其他
* bootstrap預設樣式
> container會往內推
> row往外推
> col再往內推
* 容器就讓它回歸容器，元件就讓它回歸元件吧！ 兩個樣式分開寫，不要寫在一起。

### gutter
* gutter bootstrap用padding去推的，可以寫在row上
  ![](https://i.imgur.com/NDJmuu2.png)
  ![](https://i.imgur.com/CTITUYR.png)
  也可以寫在col上
  ![](https://i.imgur.com/okVksgF.png)
> 記得要包兩層
