# Bootstrap 簡介
---
## Bootstrap 是什麼
Bootstrap是一款前端網頁框架,為了深入了解Bootstrap的意義與作用,我們需要對以下名詞作了解:
---
* 網頁框架:
* 網頁框架的概念類似於我們製作簡報時使用的「模板」,是一套由他人所撰寫好的文件。
* 大多時候,我們不必知道網頁框架是如何被設計出來,只要知道如何使用,就能夠輕鬆設計出不錯看的頁面。
* 網頁框架的存在大幅提高網頁設計效率。
* 常見網頁框架如Bootstrap、Angular、React...。
---
* 前端:
* 前端泛指在網頁中,我們可以看到的所有東西。
* 目前學過的HTML、CSS及之後要學的Javascript都屬於前端的範疇。
透過以上兩個名詞,我們對Bootstrap應該有了較深的了解;接下來我們將開始學習Bootstrap這個方便與強大的工具,加快我們的設計效率及提升網頁效果。
---
## 如何使用 Bootstrap
### Bootstrap 官網

- [Bootstrap 官網](https://getbootstrap.com/)
---
1. 進入官網後,點選左上角的「DOCS」

---
2. 往下滑動後,可以找到如下的html檔案
```xml!
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap demo</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
</head>
<body>
<h1>Hello, world!</h1>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
</body>
</html>
```
---
3. 觀察過後,我們可以發現這份檔案中有兩個標籤較為特別
```xml!
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
```
```xml!
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
```
---
4. 只要將這兩個標籤複製下來,適當貼到我們自己的HTML檔案中,就可以將Bootstrap引入我們的檔案中
* 貼至head標籤裡面
```xml!
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
```
* 貼至body標籤裡面
```xml!
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
```
---
5. 寫一組<button>,測試看看是否有效果
```xml!
<button></button>
```
#格線系統 (Grid-system)
###### tags: `NKFW 網頁設計入門`
---
## Breakpoint
* 直接設計出來的網站無法適應所有大小的螢幕,所以我們需要對不同設備設計不同的排版。
* 以下是Bootstrap對於不同大小的設備做的分類,分別有以下的尺寸代號。
* 可以按-F12-切換裝置模擬,來看看不同大小的設備顯示網頁的狀況。
| Breakpoint | 類別名稱 | 尺寸 | 相對應的設備 | EX |
|:----------- | -------- | ------ | ------------ |:------------------ |
| Extra small | None | <576px | 手機直向寬度 | Samsung Galaxy S8+ |
| Small | **sm** | ≥576px | 手機橫向 | |
| Medium | **md** | ≥768px | 平板直向寬度 | iPad Air |
| Large | **lg** | ≥992px | | 電腦螢幕 |
:::warning
上面的表格僅為參考用,難免會有一些特殊尺寸的設備(Ultra、Pro)會尺寸比同類型的設備還要大一些。
:::
## Container & Fluid container
:::info
Container的作用是用於填充整個畫面,容納其他元素。在Containter裡面有網格系統,網格系統則由row跟column組成,範例如下:
:::
```xml!
<div class="container">
<div class="row">
<div class="col">
...
</div>
<div class="col">
...
</div>
<div class="col">
...
</div>
</div>
</div>
```
1. container
* 定寬容器
* 在每一個breakpoint上都有一個最大寬度(max-width)
2. container-fluid
* 在所有大小的視窗中都是width:100%,會隨著視窗大小縮放
<!-- 3. Responsive container
* EX:container-md
* 在平板直向寬度以下的時候,container是滿版的(fluid)
* 大於等於平板直向寬度的時候,container是定寬的
底下的範例,container-md會在`md`以下的尺寸滿版(`container-fluid`)
```htmlmixed!
<div class="container-md bg-danger-subtle">
試試看我甚麼時候會是滿版容器
</div>
``` -->
---
## Grid
:::info
* Bootstrap的格線系統是由row跟column組成,每一個row都被切分成12等分
* 因為常用的版面是2、3、4欄的版面,所以就取最小公倍數12作為基準
:::

* 不指定column欄寬,會自動分配寬度
```xml!
<div class="container">
<div class="row">
<div class="col">...</div>
<div class="col">...</div>
<div class="col">...</div>
<div class="col">...</div>
</div>
</div>
```
* 指定column欄寬
```xml!
<div class="container">
<div class="row">
<div class="col-4">...</div>
<div class="col-8">...</div>
</div>
</div>
```
* column+breakpoint
EX:在手機上面滿版(只有一欄),但是希望在平板上面有三欄,我該怎麼做?
```xml!
<div class="container">
<div class="row">
<div class="col col-md-4">...</div>
<div class="col col-md-4">...</div>
<div class="col col-md-4">...</div>
</div>
</div>
```
* row-cols欄數
* 控制一個row有幾個column,多的換行
* EX:平板橫向/電腦以上4欄,平板直向以上2欄,手機1欄
```xml!
<div class="container">
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-4 g-4 justify-content-center">
<div class="col">......</div>
<div class="col">......</div>
<div class="col">......</div>
<div class="col">......</div>
<div class="col">......</div>
</div>
</div>
```
---
## Flex
因為row有flex的屬性,所以我們可以對column做以下幾種操作:
* <p style="color:purple">justify-content</p>
* <p style="color:purple">align-items</p>
* <p style="color:purple">align-content</p>
```xml!
<!-- 指定column欄寬 -->
<div class="container">
<div class="row justify-content-between">
<div class="col-4">...</div>
<div class="col-8">...</div>
</div>
</div>
```
:::success
客戶奇怪的要求:我想要一個三欄的版面,但是我想要每一個欄位的寬度只有3/12
該怎麼做呢?
:::
:::spoiler 解答在這裡
```xml!
<div class="container">
<div class="row justify-content-center">
<div class="col-3">...</div>
<div class="col-3">...</div>
<div class="col-3">...</div>
</div>
</div>
<!-- 或是-->
<div class="container">
<div class="row justify-content-around">
<div class="col-3">...</div>
<div class="col-3">...</div>
<div class="col-3">...</div>
</div>
</div>
```
:::
---
## Gutter
是時候讓column之間有點喘息的空間了。
gutter控制每一個column的padding。
* <p style="color:purple">g-0</p>
* <p style="color:purple">g-1</p>
* <p style="color:purple">g-2</p>
* <p style="color:purple">g-3</p>
* <p style="color:purple">g-4</p>
* <p style="color:purple">g-5</p>
```xml!
<div class="container">
<div class="row ">
<div class="col-3">...</div>
<div class="col-3">...</div>
<div class="col-3">...</div>
<div class="col-3">...</div>
</div>
</div>
```
<!-- :::danger
我在column上面設定背景顏色之後
gutter就沒有作用了
我該怎麼辦?
:::
因為gutter是指column的padding,而設定背景顏色的時候padding會受到影響,加上預設的flex物件之間沒有margin,所以你要給column一些margin。
底下是範例
:::info
class:`flex-nowrap`屬性指的是CSS的`flex-wrap: nowrap`。
因為我們有三個4欄的`col`,所以他們被分配到各1/3的row的寬度,但是現在每一個`col`又被手動加上水平10px的`margin`,所以最後一個`col`會超出去整個`row`,這時候需要設定`flex-wrap: nowrap`,讓超出去的`col`不要被換行,這樣會使所有的`col`重新分配大小。
:::
```xml
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://getbootstrap.com/docs/5.3/assets/css/docs.css" rel="stylesheet">
<title>Document</title>
<style>
.content{
text-align: center;
margin: 0px 10px;
}
#content1{
background-color:blueviolet;
}
#content2{
background-color: brown;
}
</style>
</head>
<body>
<div class="container">
<div class="row g-0 justify-content-center flex-nowrap m-3">
<div class="content col-3" id="content1">Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore suscipit possimus similique sit sequi veritatis, iure tempore, enim qui aliquid doloribus mollitia cum necessitatibus iste, repudiandae at officia praesentium recusandae.</div>
<div class="content col-3" id="content2">Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore suscipit possimus similique sit sequi veritatis, iure tempore, enim qui aliquid doloribus mollitia cum necessitatibus iste, repudiandae at officia praesentium recusandae.</div>
<div class="content col-3">Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore suscipit possimus similique sit sequi veritatis, iure tempore, enim qui aliquid doloribus mollitia cum necessitatibus iste, repudiandae at officia praesentium recusandae.</div>
<div class="content col-3">Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore suscipit possimus similique sit sequi veritatis, iure tempore, enim qui aliquid doloribus mollitia cum necessitatibus iste, repudiandae at officia praesentium recusandae.</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
``` -->
# 共用項目 (Utilities)
###### tags: `NKFW 網頁設計入門`
:::info
共用項目是透過標籤的class來控制常見的CSS屬性。跟直接用CSS控制沒甚麼不同,但是增加了便利性。這裡要介紹的項目包含:
* spacing
* padding
* margin
* sizing
* width
* height
* background color
* border
* color
* display
<!-- 這裡我們將大量使用官方文件進行教學,讓大家知道如何自己看官方文件 -->
:::
[Bootstrap官方文件(英文)](https://getbootstrap.com/docs/5.3/utilities)
[Bootstrap官方文件-六角學院翻譯(中文)](https://bootstrap5.hexschool.com/)
---
## spacing
* 控制的屬性
* <h6 style="color:purple;display:inline">m</h6>:margin
* <h6 style="color:purple;display:inline">p</h6>:padding
* 控制的方向
* <h6 style="color:purple;display:inline">t</h6>:top
* <h6 style="color:purple;display:inline">b</h6>:bottom
* <h6 style="color:purple;display:inline">s</h6>:start
* <h6 style="color:purple;display:inline">e</h6>:end
* <h6 style="color:purple;display:inline">x</h6>:left and right
* <h6 style="color:purple;display:inline">y</h6>:top and bottom
* 控制的大小
* <h6 style="color:purple;display:inline">0~5</h6>
* <h6 style="color:purple;display:inline">auto</h6>
格式範例:
* `m-5`:上下左右有margin
* `mt-5`:只有上方有margin
---
## sizing
* 控制的屬性
* <h6 style="color:purple;display:inline">w</h6>:width
* <h6 style="color:purple;display:inline">h</h6>:height
* <h6 style="color:purple;display:inline">mw</h6>:max-width
* <h6 style="color:purple;display:inline">mh</h6>:max-height
* <h6 style="color:purple;display:inline">vw</h6>
* <h6 style="color:purple;display:inline">vh</h6>
* 控制的單位
* 數字(百分比)
* 只有<h6 style="color:purple;display:inline">25、50、75、100</h6>的單位可以用
## display
:::info
跟CSS的display基本上一樣。
可以結合Breakpoint尺寸代號進行控制。
:::
格式:`d-尺寸代號-值`
## 結合spacing, sizing, display的練習
### 水平置中
`mx-auto`使`content`水平置中,`my-3`在垂直方向上增加margin
* HTML
```xml=
<body>
<div class="content w-50 mx-auto my-3">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ad molestiae eaque aliquam laborum quasi non veniam odit blanditiis? Omnis, voluptas!</div>
<div class="content w-50 mx-auto my-3">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ad molestiae eaque aliquam laborum quasi non veniam odit blanditiis? Omnis, voluptas!</div>
<div class="content w-50 mx-auto my-3">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ad molestiae eaque aliquam laborum quasi non veniam odit blanditiis? Omnis, voluptas!</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script>
</body>
```

### 靠在左右兩側
:::info
要怎麼讓兩個水平並排的區塊靠在左右兩邊呢?除了使用flex的`justify-content`之外,你還可以透過控制`margin`達到一樣的效果。
:::
* 在`nav`設定`d-flex`之後,使`left`, `right`兩個區塊可以併排(因為預設`flex-direction: row`,兩個區塊為水平排列方向)
* 之後,在`right`加上`ms-auto`,可以自動分配左邊的`margin`,所以`right`就被推到最右邊了。
* 如果沒有在`nav`設定`d-flex`,在`right`加上`ms-auto`是沒有作用的。flex解放了margin可以運用的空間。
```xml=
<body>
<nav class="d-flex">
<div class="left">
<h3>NKFW</h3>
</div>
<div class="right ms-auto">
<a href="#">活動簡介</a>
<a href="#">活動剪影</a>
<a href="#">關於我們</a>
</div>
</nav>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script>
</body>
```

### 垂直置中
:::info
內容不能垂直置中真是討厭...使用`flex`或是控制`margin`可以垂直置中。
:::
* 在`right`設定`d-flex`,以解放垂直、水平方向的空間。
* 在標籤`a`設定`my-auto`,使其垂直置中。
```xml=
<body>
<nav class="d-flex">
<div class="left">
<h3>NKFW</h3>
</div>
<div class="right ms-auto d-flex">
<a href="#" class="my-auto mx-1">活動簡介</a>
<a href="#" class="my-auto mx-1">活動剪影</a>
<a href="#" class="my-auto mx-1">關於我們</a>
</div>
</nav>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
```

### flex的RWD控制 (optional)
:::info
我想要在尺寸寬度在平板(`md`)以上的時候,讓一個區塊用flex排列,如果小於的話,就不要用flex排列。
:::
```xml=
<body>
<div class="block d-md-flex">
<div class="content my-3">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Autem, facilis! Ab nam quam corrupti officiis soluta perspiciatis. Illum, explicabo delectus?</div>
<div class="content my-3">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Autem, facilis! Ab nam quam corrupti officiis soluta perspiciatis. Illum, explicabo delectus?</div>
<div class="content my-3">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Autem, facilis! Ab nam quam corrupti officiis soluta perspiciatis. Illum, explicabo delectus?</div>
</div>
</body>
```
上面的例子,等同於使用格線系統`container-row-col`的寫法:
```xml=
<body>
<div class="container-fluid">
<div class="row">
<div class="col-12 col-md content my-3">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Autem, facilis! Ab nam quam corrupti officiis soluta perspiciatis. Illum, explicabo delectus?</div>
<div class="col-12 col-md content my-3">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Autem, facilis! Ab nam quam corrupti officiis soluta perspiciatis. Illum, explicabo delectus?</div>
<div class="col-12 col-md content my-3">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Autem, facilis! Ab nam quam corrupti officiis soluta perspiciatis. Illum, explicabo delectus?</div>
</div>
</div>
</body>
```
:::info
這兩個寫法其實都OK,取決於你覺得哪個比較好寫。有時候我們不想要使用格線系統`container-row-column`的寫法,因為在一個小區塊上面塞很多層標籤,會看起來很臃腫。
:::
## background
設定標籤的背景色彩
* 格式:`bg-顏色`
* 可以使用的顏色(version 5.0)
* `primary`
* `secondary`
* `success`
* `danger`
* `warning`
* `info`
* `light`
* `dark`
* 還有很多......請到官網查看
* 可以使用的顏色(version 5.3)
* `primary`
* `primary-subtle`
* `secondary`
* `secondary-subtle`
* `success`
* `success-subtle`
* 還有很多......請到官網查看
## border
控制邊框
一定要在class上面加上`border`,剩下的根據需求增加到class:
* 控制顏色
* `border-顏色`
* 只使用某一邊的border
* `border-top`
* `border-end`
* `border-bottom`
* `border-start`
* 刪除某一邊的border
* `border-0`
* `border-top-0`
* `border-end-0`
* `border-bottom-0`
* `border-start-0`
* border寬度
* `border-寬度`
* 寬度:`0~5`
* rounded border
* `rounded`
* `rounded-top`
* `rounded-end`
* `rounded-bottom`
* `rounded-start`
* `rounded-circle`
* `rounded-pill`
* 還有很多...請到官網查詢
### 範例:做一個有邊框的內容區塊
:::info
做一個三欄版面,在左邊的區塊,靠左的一邊的地方要有圓角;在右邊的區塊,靠左的一邊的地方要有圓角。
:::
```xml=
<body>
<div class="container mt-5">
<div class="row">
<div class="col border rounded-start-5 p-3">Lorem ipsum dolor sit amet consectetur adipisicing elit. Corrupti odit voluptatum est consequuntur dignissimos optio, quia magni vero eligendi beatae!</div>
<div class="col border p-3">Lorem ipsum dolor sit amet consectetur adipisicing elit. Corrupti odit voluptatum est consequuntur dignissimos optio, quia magni vero eligendi beatae!</div>
<div class="col border rounded-end-5 p-3">Lorem ipsum dolor sit amet consectetur adipisicing elit. Corrupti odit voluptatum est consequuntur dignissimos optio, quia magni vero eligendi beatae!</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script>
</body>
```

---
## color
控制文字色彩
:::info
去官網查查看有什麼顏色可以用吧
:::
---
## text-align
控制文字對齊
:::info
去官網查查看要怎麼讓文字置中吧
:::
---
## Project (Optional)
:::info
使用Utilities當中的項目美化你之前做過的Project吧。你可以:
* 在每個欄位之間增加margin,讓排版看起來舒服一點
* 在標籤上增加padding,讓內容看起來不會那麼擠
* 跟我一樣缺乏藝術細胞的人,使用background修改你的背景顏色讓他更好看些
* 覺得正正方方的版面很無聊嗎?讓你的欄位變成圓角邊框
:::
---
# 現成組件 (Components)
###### tags: `NKFW 網頁設計入門`
## 前言
與其一個一個組件慢慢學,不如直接從project當中學習
---
## 使用現成組件需要注意的事情
:::info
怎麼我直接複製之後看起來壞掉了?你需要注意有以下幾點可能的原因:
* 圖片路徑:你需要寫上正確的圖片路徑
* inline-style:官網會在範例上加上inline-style(為了展示用)。
:::
---
## navbar
:::info
一個完整的nav看起來相當龐大,但是我們可以分成好幾個部分來看:
* `navbar-brand`:可以放icon之類的地方
* `navbar-toggler`:導覽列的Hamburger(三條線的icon),控制nav內容展開跟收合
* `navbar-collapse`:包住navbar-nav,被`navbar-toggler`控制
* navbar-nav:nav的內容,本身是一個`ul`
* nav-item:每一個項目都是一個`li`
* link
* dropdown-toggle:控制dropdown-menu的收合&展開
* dropdown-menu
* search:搜尋列:本身是一個表單。
:::
```xml=
<nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Dropdown
</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
</ul>
<form class="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</nav>
```


---
## Carousel
:::info
Carousel是一個幻燈片,基本包含以下的部分:
* carousel-inner:包住carousel-item的 區塊。
* carousel-item:每一個item裡面都放一張圖片,代表幻燈片的圖片。
* carousel-control-prev:上一頁幻燈片的按鈕。
* carousel-control-next:下一頁幻燈片的按鈕。
:::
```xml=
<div id="carouselExample" class="carousel slide">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExample" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExample" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
```

---
## Card
:::info
card是一張卡片,裡面包含以下的元素:
* card-img
* card-body:裡面有`card-title`, `card-text`
* card-title:卡片的標題
* card-text:卡片的文字
:::

```xml=
<div class="card" style="width: 18rem;">
<img src="..." class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
</div>
</div>
```
## 做一個個人網站
:::info
你可以...
* 在網頁上方放一個導覽列
* 用卡片組件、列表介紹自己
* 放一個幻燈片區塊
:::
## 做一個電商網站吧
:::info
做一個電商網站的基本元素有什麼:
* 導覽列
* 購物商品
* 分頁導覽
* 按下商品購買鍵會彈出提示視窗
* 其他...
:::
### 做一個系網
:::info
系網可能會用到的元素:
* 導覽列:navbar
* 幻燈片-大圖:Carousel
* 廣告、內容區塊:Card
你可能有一天就會用到這些東西,幫你們系/社團/學校/甚至是公司,架一個網站!
:::