---
# System prepended metadata

title: HTML + CSS 全功能教學指南 (Part 2)
tags: [網頁教學]

---

# HTML + CSS 全功能教學指南 (Part 2)

## 目標
- 更詳細地介紹 HTML 和 CSS 的進階功能和概念。
- 解釋更複雜的 CSS 技術及其用法。

## 進階 HTML

### 1. 表單和輸入元素
表單元素用於收集用戶輸入的數據。

```html
<form action="/submit" method="post">
    <label for="name">Name:</label>
    <input type="text" id="name" name="name" required>

    <label for="email">Email:</label>
    <input type="email" id="email" name="email" required>

    <label for="message">Message:</label>
    <textarea id="message" name="message" required></textarea>

    <input type="submit" value="Submit">
</form>
```

- `<form>`：表單元素，用於包含輸入元素。
- `<label>`：標籤元素，為輸入元素提供描述。
- `<input>`：輸入元素，`type` 屬性定義輸入類型（例如 `text`、`email`、`submit`）。
- `<textarea>`：多行輸入元素。
- `required`：屬性，指定輸入字段為必填項。

### 2. 多媒體元素
用於嵌入視頻和音頻內容。

```html
<video controls>
    <source src="movie.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>

<audio controls>
    <source src="audio.mp3" type="audio/mp3">
    Your browser does not support the audio element.
</audio>
```

- `<video>`：視頻元素，`controls` 屬性顯示播放控制。
- `<audio>`：音頻元素，`controls` 屬性顯示播放控制。
- `<source>`：源元素，指定媒體文件及其類型。

### 3. 表格
用於顯示數據表格。

```html
<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Age</th>
            <th>Email</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>John Doe</td>
            <td>25</td>
            <td>john@example.com</td>
        </tr>
        <tr>
            <td>Jane Smith</td>
            <td>30</td>
            <td>jane@example.com</td>
        </tr>
    </tbody>
</table>
```

- `<table>`：表格元素。
- `<thead>`：表頭區域。
- `<tbody>`：表格主體。
- `<tr>`：表格行。
- `<th>`：表頭單元格。
- `<td>`：表格數據單元格。

## 進階 CSS

### 1. CSS 選擇器
CSS 提供多種選擇器，用於選擇 HTML 元素並應用樣式。

#### 1.1 後代選擇器
選擇元素的所有後代。

```css
div p {
    color: blue;
}
```

- `div p`：選擇所有位於 `<div>` 內的 `<p>` 元素。

#### 1.2 子選擇器
選擇元素的直接子元素。

```css
div > p {
    color: red;
}
```

- `div > p`：選擇 `<div>` 的所有直接子元素 `<p>`。

#### 1.3 同級選擇器
選擇同一層級中的元素。

```css
h1 + p {
    color: green;
}
```

- `h1 + p`：選擇緊接著 `<h1>` 之後的第一個 `<p>` 元素。

### 2. CSS 動畫與過渡

#### 2.1 過渡
用於平滑地改變 CSS 屬性。

```css
button {
    background-color: blue;
    transition: background-color 0.3s ease;
}

button:hover {
    background-color: green;
}
```

- `transition`：定義過渡效果，包含屬性、持續時間和過渡函數。
- `hover` 狀態下的樣式變化。

#### 2.2 動畫
定義關鍵幀動畫效果。

```css
@keyframes slidein {
    from {
        transform: translateX(100%);
    }
    to {
        transform: translateX(0);
    }
}

div {
    animation: slidein 1s ease-in-out;
}
```

- `@keyframes`：定義動畫的關鍵幀。
- `animation`：應用動畫，包含名稱、持續時間和過渡函數。

### 3. CSS 位置配置
位置配置是控制元素在頁面上位置的重要工具。

#### 3.1 靜態定位
預設值，元素按正常流動布局。

```css
div {
    position: static;
}
```

#### 3.2 相對定位
元素相對於其正常位置進行移動。

```css
div {
    position: relative;
    top: 10px;
    left: 10px;
}
```

#### 3.3 絕對定位
元素相對於最近的已定位祖先元素進行移動。

```css
div {
    position: absolute;
    top: 50px;
    left: 50px;
}
```

#### 3.4 固定定位
元素相對於瀏覽器窗口進行移動。

```css
div {
    position: fixed;
    top: 0;
    right: 0;
}
```

#### 3.5 粘性定位
元素在滾動到特定位置時變為固定。

```css
div {
    position: sticky;
    top: 0;
}
```

### 4. CSS Flexbox
Flexbox 是一種高效的布局模型，用於設計彈性佈局。

```css
.container {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.item {
    flex: 1;
}
```

- `display: flex`：將容器設置為彈性盒模型。
- `flex-direction`：設置主軸方向（如 `row` 或 `column`）。
- `justify-content`：設定主軸對齊方式。
- `align-items`：設定交叉軸對齊方式。
- `flex`：設定元素的彈性伸縮。

### 5. CSS Grid
Grid 是另一種強大的布局模型，用於設計複雜的網格布局。

```css
.grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 10px;
}

.grid-item {
    background-color: #ccc;
    padding: 20px;
}
```

- `display: grid`：將容器設置為網格布局。
- `grid-template-columns`：設定網格列的模板。
- `grid-gap`：設定網格項之間的間距。

### 6. CSS 變換
用於改變元素的尺寸、位置和旋轉角度。

```css
div {
    transform: scale(1.5) rotate(45deg) translateX(100px);
}
```

- `transform: scale()`：縮放元素。
- `transform: rotate()`：旋轉元素。
- `transform: translateX()`：沿 X 軸平移元素。

### 7. CSS 變量
CSS 變量允許在樣式表中定義可重用的值。

```css
:root {
    --primary-color: #4CAF50;
}

div {
    background-color: var(--primary-color);
}
```

- `--primary-color`：定義 CSS 變量。
- `var(--primary-color)`：使用 CSS 變量。

---

- [✔️] 此文章部分內容為AI創作，若有錯誤請備註。
- [✔️] 分享貼文請標註來源。