📚 第一部分:HTML 是什麼?
🎯 一句話說清楚
HTML 就是「網頁的骨架」,用一堆「標籤」告訴瀏覽器:這裡要放標題、那裡要放圖片、這段是按鈕。
📦 什麼是「標籤語言」?
想像你在整理玩具箱:
- 你會用標籤紙寫「樂高」貼在盒子上
- 你會用標籤紙寫「娃娃」貼在另一個盒子上
HTML 也一樣,用「標籤」把內容包起來:
<h1>這是大標題</h1>
<p>這是一段文字</p>
<img src="cat.jpg" />
🧩 成對的標籤(像三明治)
大部分標籤都是成對的,像三明治一樣把內容夾在中間:
<開始標籤> 內容 </結束標籤>
↓ ↓ ↓
麵包 火腿 麵包
<h1>我的網站</h1>
<p>歡迎來到我的網站!</p>
<button>點我</button>
⚠️ 特殊例外: 有些標籤不需要內容,就不用成對(像
<img /> 圖片、<br /> 換行)
🏗️ HTML 的工作是什麼?
- 搭建網頁架構:就像蓋房子要先有樑柱
- 呈現內容:文字、圖片、影片都放在 HTML 裡
- 讓 CSS 打扮:HTML 是骨架,CSS 是衣服
- 讓 JavaScript 動起來:HTML 是身體,JavaScript 是動作
📝 第二部分:HTML 檔案結構的起手式
完整的起手式長這樣
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>我的第一個網頁</title>
</head>
<body>
<h1>哈囉!</h1>
<p>這是我的第一個網頁。</p>
</body>
</html>
🔍 各部分的作用
1️⃣ <!DOCTYPE html>
- 是什麼:告訴瀏覽器「這是 HTML5 格式」
- 名字的意思:
- DOC = Document(文件)
- TYPE = Type(類型)
- DOCTYPE = 文件類型
- 為什麼:不寫的話,瀏覽器可能用舊規則解讀,排版會跑掉
- 怎麼用:照抄,放在第一行,不用改
2️⃣ <html>...</html>
- 是什麼:整個網頁的「大箱子」或「大盒子」,所有東西都要放在裡面
- 為什麼:瀏覽器才知道「從這裡開始、到這裡結束」
- 怎麼用:把所有內容包在裡面
3️⃣ <head>...</head>
- 是什麼:網頁的「設定區」(使用者看不到,但很重要)
- 放什麼:標題、字典設定、CSS 連結、給搜尋引擎看的資訊
- 比喻:像書的「版權頁」,讀者不看,但出版社需要
4️⃣ <body>...</body>
- 是什麼:網頁的「內容區」(使用者看到的所有東西)
- 放什麼:文字、圖片、按鈕、影片...所有你要展示的東西
- 比喻:像書的「內文」,這才是重點
🔬 第三部分:逐行詳解 <head> 裡的內容
🌍 <html lang="zh-TW"> 或 <html lang="en">
是什麼?
告訴瀏覽器「這個網頁用什麼語言寫的」
為什麼要寫?
- 幫助翻譯:瀏覽器可以問你「要不要翻譯成中文?」
- 幫助朗讀:螢幕朗讀軟體(給視障朋友用的)會用正確的發音
- 幫助搜尋引擎:Google 知道這頁是中文還是英文
怎麼用?
- 中文網站 →
<html lang="zh-TW">(TW = 台灣) - 英文網站 →
<html lang="en">(en = English)
✏️ 小練習: 做一個中文網站,就寫
lang="zh-TW";如果是英文教學網站,就寫 lang="en"
🔤 <meta charset="UTF-8" />
是什麼?
告訴瀏覽器「這頁用 UTF-8 字典」
為什麼要寫?
- 沒有它,中文、表情符號常會變亂碼 😱 → ??????
- UTF-8 是全世界通用的字典,包含中文、日文、emoji、各種符號
怎麼用?
- 照抄這一行
- 一定要放在
<head>最前面(愈前面愈不會出錯)
✏️ 小練習: 在網頁打上「測試:你好 👋」,存檔後正常顯示就對了
📱 <meta name="viewport" content="width=device-width, initial-scale=1" />
是什麼?
定義瀏覽器的「畫布」有多寬,讓手機版網頁正常顯示
拆解說明:
width=device-width:畫布寬度 = 裝置的螢幕寬度initial-scale=1:開啟網頁時不要自動縮放
為什麼要寫?
❌ 沒有這行的話:
- 手機會假裝自己是電腦(螢幕很寬,約 980px)
- 結果字超小、要一直放大縮小才能看
✅ 有這行的話:
- 手機知道「我就是手機」(螢幕寬 375px)
- RWD(響應式設計)才會正常啟動
怎麼用?
照抄這一行,不要加 user-scalable=no(會讓人無法放大網頁,對視力不好的人很困擾)
✏️ 小練習: 寫一個 CSS:
@media (max-width: 600px) {
body {
background: lightgreen;
}
}
用手機看,背景會變綠色 → 代表 viewport 有生效!
📑 <title>我的網頁</title>
是什麼?
瀏覽器分頁上的標題(那個小標籤的文字)
為什麼要寫?
- 方便使用者分辨「現在開了哪些分頁」
- 加入書籤時的名稱
- 搜尋引擎會拿來當標題
怎麼用?
每個頁面寫得清楚、簡短
- ✅ 好例子「課程首頁|VS Code 入門」
- ❌ 壞例子「首頁」(太模糊)
✏️ 小練習: 改成你要的課程名,存檔後看分頁立即更新
📝 <meta name="description" content="這是一個教學網站" />
是什麼?
這個網頁的「一句話介紹」,給搜尋引擎看的(頁面上不會顯示)
為什麼要寫?
在 Google 搜尋結果裡,會顯示這段文字,讓人知道「這頁在講什麼」
📌 實際例子:
當你在 Google 搜尋「HTML 教學」,會看到這樣的結果:
當你在 Google 搜尋「HTML 教學」,會看到這樣的結果:
【標題】HTML 基礎教學 - W3Schools
【網址】https://www.w3schools.com/html/
【描述】學習 HTML 的基礎知識,包含標籤、屬性、格式化等內容...
↑ 這段文字就是從 <meta name="description"> 來的!
沒有寫 description 的話,Google 會隨便抓一段你網頁的文字當描述,可能會很奇怪。
怎麼用?
- 長度:50~160 個字
- 內容:一句完整的話,講清楚這頁的重點
- ❌ 不要亂塞關鍵字:「HTML HTML HTML 教學教學」
- ✅ 要寫完整句子:「最簡明的 VS Code 入門教學,學會 HTML 起手式與 Live Server」
✏️ 小練習: 把描述換成你的課程介紹,之後分享連結時,很多社群平台也會抓這段文字
💡 第四部分:補充說明
🎨 什麼是 RWD(響應式網頁設計)?
一句話說清楚:
RWD = 網頁會自動變身,電腦看是一個樣子,手機看又是另一個樣子
RWD = 網頁會自動變身,電腦看是一個樣子,手機看又是另一個樣子
舉例
- 電腦螢幕(寬 1920px):文字排三欄、導覽列橫的
- 手機螢幕(寬 375px):文字排一欄、導覽列變成漢堡選單
怎麼做到的?
用 CSS 的 @media 偵測螢幕寬度:
/* 螢幕小於 600px 時 */
@media (max-width: 600px) {
.sidebar {
display: none;
}
/* 側邊欄隱藏 */
}
為什麼要用 RWD?
現在 70% 的人用手機上網,網頁不能只做給電腦看!
🖼️ 什麼是 Viewport(視口)?
一句話說清楚:
Viewport = 瀏覽器用來「展示網頁」的畫布
Viewport = 瀏覽器用來「展示網頁」的畫布
比喻
想像你在畫圖:
- 畫布 = Viewport(瀏覽器顯示區域)
- 你畫的內容 = 網頁內容
- 畫布大小 = CSS 用來計算「多寬、多高」的基準
為什麼重要?
CSS 的所有計算都以 Viewport 為準:
width: 50vw→ 畫布寬度的 50%@media (max-width: 600px)→ 畫布寬度小於 600px 時
沒有設定 viewport 會怎樣?
手機會假裝畫布很寬(980px),結果:
- 字超小
- 要一直捏放才能看
- RWD 斷點失效
📌 第五部分:最短小抄(背起來!)
🎯 HTML 起手式記憶口訣
DOCTYPE 告訴瀏覽器版本
html 包住全部內容
head 是設定區(看不見)
body 是內容區(看得見)
📊 <head> 五行記憶表
| 標籤 | 作用 | 一句話 |
|---|---|---|
lang="zh-TW" |
語言設定 | 告訴瀏覽器這頁是中文 |
charset="UTF-8" |
字典設定 | 中文不亂碼 |
viewport |
畫布設定 | 手機版網頁會正常顯示 |
<title> |
分頁標題 | 瀏覽器分頁上的文字 |
description |
頁面介紹 | 搜尋引擎的摘要 |
🚀 三個一定要記住的事
charset要放最前面,不然中文會亂碼viewport不能少,不然手機版會爆掉- 每個頁面都要有
<title>,不然分頁會顯示「無標題」
🎓 總複習:完整範例
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>我的第一個網頁|HTML 入門</title>
<meta name="description" content="這是一個 HTML 入門教學網站,適合小學生學習。" />
</head>
<body>
<h1>歡迎來到我的網站!</h1>
<p>這是我用 HTML 做的第一個網頁 🎉</p>
</body>
</html>
✅ 檢查清單
🎉 全部打勾 ✅ = 你的 HTML 起手式超標準!
❓ 常見問題
Q1:為什麼要寫這麼多看不見的東西?
A:就像蓋房子要打地基,雖然看不見,但沒有地基房子會倒。<head> 就是網頁的地基!
Q2:我可以不寫 viewport 嗎?
A:可以,但手機版網頁會超難看,字會超小。現在 70% 的人用手機上網,一定要寫!
Q3:lang="en" 和 lang="zh-TW" 差在哪?
A:差在瀏覽器的翻譯功能、螢幕朗讀的發音。中文網站一定要寫 "zh-TW",不然朗讀軟體會用英文發音念中文字(超怪)。
Q4:我把 charset 放在後面會怎樣?
A:可能前面幾個中文字會變亂碼,所以一定要放在 <head> 最前面!
Q5:UTF-8 跟 utf-8 有差嗎?
A:沒差!大小寫都可以,但習慣上都寫大寫 UTF-8。
✏️ 實戰練習
練習 1:做一個自我介紹網頁
要求:
- 用完整的 HTML 起手式
lang設成中文<title>寫「我的自我介紹」description寫一句介紹自己的話<body>裡放:- 大標題:你的名字
- 段落:介紹你的興趣
範例:
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>我的自我介紹|小明</title>
<meta name="description" content="我是小明,喜歡畫畫和打籃球。" />
</head>
<body>
<h1>大家好,我是小明!</h1>
<p>我喜歡畫畫和打籃球,最喜歡的顏色是藍色。</p>
</body>
</html>
練習 2:檢查錯誤
下面這個 HTML 有 5 個錯誤,你能找出來嗎?
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta charset="UTF-8" />
<title>錯誤範例
</head>
<body>
<h1>這是標題</h1>
<p>這是內容
</body>
</html>
點我看答案 👇
- ❌
<html>沒有寫lang屬性 → ✅ 應該寫<html lang="zh-TW"> - ❌
charset沒有放在最前面 → ✅ 應該放在viewport之前 - ❌
<title>沒有結束標籤 → ✅ 應該寫</title> - ❌
<p>沒有結束標籤 → ✅ 應該寫</p> - ❌ 沒有
description→ ✅ 應該加上描述
🏆 恭喜你!
看完這份教學,你已經:
- ✅ 知道 HTML 是什麼
- ✅ 會寫完整的 HTML 起手式
- ✅ 理解每一行的意義
- ✅ 知道 RWD 和 Viewport 是什麼
- ✅ 能夠自己檢查 HTML 有沒有寫對
📝 下一步
- 實際動手做:打開 VS Code,把起手式打一遍
- 存成 .html 檔案:例如
index.html - 用瀏覽器打開:雙擊檔案,看看效果
- 試著修改內容:改標題、改文字,看看變化
💡 記住: 程式是做出來的,不是看出來的!現在就開始動手吧!💪
📖 名詞對照表
| 中文 | 英文 | 說明 |
|---|---|---|
| 超文本標記語言 | HTML (HyperText Markup Language) | 網頁的骨架 |
| 標籤 | Tag | 用來標記內容的符號,如 <p> |
| 屬性 | Attribute | 標籤裡的設定,如 lang="zh-TW" |
| 響應式網頁設計 | RWD (Responsive Web Design) | 網頁會自動適應不同螢幕 |
| 視口 | Viewport | 瀏覽器用來顯示網頁的畫布 |
| 字元編碼 | Character Encoding | 讓電腦知道怎麼顯示文字 |
| 元資料 | Meta Data | 關於網頁的資訊(放在 <head> 裡) |