商用網站架設實務

LESSON-02 · 零基礎學生教材

HTML 基礎:首頁骨架

建立自己的 commercial-site/index.htmlservices.html;首頁有一個 header、一個 main、一個 h1、兩個各含 h2 的 section,並有指向 services.html 的文字連結。

先理解:這堂課解決什麼問題?

客戶只有一段商家介紹與服務資訊,先用兩個 HTML 檔案建立能閱讀、能前往下一頁的首頁骨架;本堂不加入 CSSJavaScript 或框架。

本堂要完成:建立自己的 commercial-site/index.htmlservices.html;首頁有一個 header、一個 main、一個 h1、兩個各含 h2 的 section,並有指向 services.html 的文字連結。

學習邊界:先完成「用 HTML 語意建立服務型商家首頁骨架」,不提前引入尚未教過的框架或建置工具。

第一次上課環境:從兩個 HTML 檔案開始

  1. 編輯器:建立並儲存純文字檔案;先確認副檔名是 .html,不是 .html.txt
  2. 資料夾:建立 commercial-site/,裡面放 index.htmlservices.html,本堂不新增 CSS、JavaScript 或框架。
  3. 瀏覽器:先開啟 index.html;每次儲存後回到瀏覽器重新整理,才會看到最新結果。
  4. DevTools:在頁面按右鍵選「檢查」,本堂先用 Elements 看文件階層,再用 Network 看 HTML 是否 200 或 404。

素材選修預告:assets/ 本堂只知道它是素材資料夾,不建立也不引用本地素材。

先做最小實驗:先看見結果

這不是期末網站,而是一個可以直接看到本堂核心結果的最小實驗。先完成一次操作,再回到檔案和名詞卡對照。

開啟本堂最小實驗

  1. 入口:開啟 examples/minimal/index.html
  2. 操作:開啟 examples/minimal/index.html,先點擊頁面內連結,再觀察網址中的 #services,最後用 Elements 展開文件階層。
  3. 預期:頁面內連結把網址移到 #services;Elements 能看到 html、head、body、header、main、section、h1 與 h2。
  4. 重設:重新整理 examples/minimal/index.html;需要重做時回到這份只讀示範頁。

學生練習流程

依序完成每一張卡;目前只聚焦一個步驟,先操作,再用可觀察證據確認結果。

  1. 1

    最小實驗

    第一次開啟 HTML:在編輯器建立 commercial-site/,用瀏覽器開啟 index.html;儲存後重新整理。
  2. 2

    最小實驗 2

    先開啟 examples/minimal/index.html,點擊頁面內連結,觀察網址中的 #services,再用 Elements 展開文件階層。
  3. 3

    名詞

    回到名詞卡,依序拆解 doctype、head/body、header/main/section、title/h1/h2、元素/標籤/屬性、a/href、id 與相對路徑。
  4. 4

    Starter

    把 Starter 複製到自己的工作資料夾:完成 header/main/唯一 h1、兩個有 h2 的 section,再加入 services.html 連結;每一步都要看到指定結果。
  5. 5

    Checkpoint

    開啟 Checkpoint,點擊故意寫成 service.html 的連結,從 Network 確認唯一的 404。
  6. 6

    驗收

    把 href 修回 services.html,確認 Network 變成 200;最後用 Elements、網址列、Tab focus 與窄版畫面留下驗收證據。
  7. 7

    變體驗收

    完成情境變體與獨立挑戰,保留兩個 HTML 檔案的責任,不新增 CSS、JavaScript 或框架,並閱讀下一堂銜接:多頁面與表單:下一堂會把相對路徑延伸到 services、about 與 contact 頁。

檔案地圖:每個位置負責什麼?

先不要急著背檔名;請把檔案位置和責任連起來。你在階段頁會看到同一份檔案的可執行版本。

先學會這些詞

先從名詞、英文與白話意思開始;每次只展開一張名詞卡,再對照正式定義、範例與驗收證據。專業術語語法檔案路徑會使用不同樣式。第一次遇到術語時,先回到這裡,不要靠猜。

本堂 10 個詞先選一組,再展開需要的名詞卡;每次只保留目前的學習焦點。

文件骨架

4 個詞
doctypeDOCTYPE declaration 白話意思:告訴瀏覽器這份文件使用現代 HTML 規則。 展開查看正式定義、範例與驗收證據
正式定義
位於文件最前方、宣告 HTML 文件型別的指示,不是一般內容元素。
什麼時候用
建立每一份 HTML 文件時。
最小範例
<!doctype html> 放在 index.html 第一行。
可觀察證據
檢視原始檔案第一行,頁面以標準模式呈現。
容易混淆
html 元素混淆;doctype 是文件宣告,html 才是文件根元素。
head/bodyHTML head and body 白話意思:head 放分頁設定,body 放訪客看得到的內容。 展開查看正式定義、範例與驗收證據
正式定義
head 承載 title 等文件中繼資料,body 承載文件的主要可見內容。
什麼時候用
要設定 title,或決定內容放在哪裡時。
最小範例
<head><title>首頁</title></head><body><h1>我的商家</h1></body>
可觀察證據
title 出現在分頁,h1 出現在畫面;Elements 可展開兩個區域。
容易混淆
和把所有內容放 body 混淆;title 應放 head,不會直接顯示在頁面。
header/main/sectionsemantic landmarks 白話意思:分別表示頁首、頁面的主要內容與一個內容分區。 展開查看正式定義、範例與驗收證據
正式定義
用名稱表達文件區域責任的 HTML 語意元素;main 應代表本頁主要內容。
什麼時候用
建立服務型首頁的內容骨架時。
最小範例
header 放品牌說明,main 放首頁內容,兩個 section 分開介紹與服務。
可觀察證據
ElementsDOM 階層與每個 section 內的 h2。
容易混淆
和 div 混淆;div 只有通用容器意義,語意元素能說明區域責任。
title/h1/h2document and heading levels 白話意思:title 是分頁名稱,h1 是本頁主題,h2 是內容分區標題。 展開查看正式定義、範例與驗收證據
正式定義
title 描述文件名稱,h1 表示最高層級主標題,h2 表示 h1 下的次層級標題。
什麼時候用
需要同時設定分頁與畫面標題層級時。
最小範例
<title>安心服務|首頁</title><h1>讓日常維護變得簡單</h1><h2>服務內容</h2>
可觀察證據
分頁、Elementsh1/h2 數量與標題文字都可對照。
容易混淆
和只用字體大小混淆;標題層級是內容結構,不只是視覺大小。

元素與連結

4 個詞
元素/標籤/屬性element, tag, attribute 白話意思:元素是完整內容單位,標籤是寫法,屬性是標籤裡的額外設定。 展開查看正式定義、範例與驗收證據
正式定義
元素是瀏覽器建立的文件節點;標籤描述節點類型與邊界;屬性提供名稱和值。
什麼時候用
閱讀或修改 HTML 原始碼時。
最小範例
<a href="services.html">服務</a> 中 a 是標籤與元素類型,href 是屬性。
可觀察證據
原始碼與 Elements 的節點、Attributes 區域可以互相對照。
容易混淆
CSS property 混淆;attribute 寫在 HTMLpropertyCSS 宣告的一部分。
anchor/a/hrefanchor element and href 白話意思:a 是可點擊的連結,href 告訴瀏覽器要去哪裡。 展開查看正式定義、範例與驗收證據
正式定義
anchor 元素透過 href 指定超連結目的地;同層檔案可使用相對路徑
什麼時候用
需要讓訪客從首頁前往 services.html 時。
最小範例
<a href="services.html">查看服務方案</a>
可觀察證據
Tab 可以聚焦連結,點擊後網址與 Network 顯示目標 HTML
容易混淆
和 link 混淆;link 通常載入資源,a 是頁面內容中的可操作連結。
idid attribute 白話意思:給單一元素的識別名稱,也可以成為頁面內連結目標。 展開查看正式定義、範例與驗收證據
正式定義
元素上應唯一的識別屬性,可被 #id 連結或在 Elements 中定位。
什麼時候用
要讓頁面內連結跳到指定 section 時。
最小範例
<section id="services"> 搭配 <a href="#services">服務</a>
可觀察證據
點擊後網址出現 #servicesElements 找到對應 section。
容易混淆
和 class 混淆;id 應識別單一目標,class 可被多個元素共用。
相對路徑relative path 白話意思:從目前 HTML 所在資料夾找另一個檔案。 展開查看正式定義、範例與驗收證據
正式定義
以目前文件 URL 為基準解析目標資源或頁面位置的路徑表示法。
什麼時候用
首頁要連到同一資料夾的 services.html 時。
最小範例
href="services.html" 會從目前 index.html 的資料夾找檔案。
可觀察證據
Network 顯示實際請求 URL;錯字 service.html 會得到 404。
容易混淆
和檔名本身混淆;檔名正確但資料夾不同時,仍需要正確的相對位置。

瀏覽器驗收

2 個詞
Elements/DOMElements panel and DOM 白話意思:Elements 讓你看瀏覽器目前的 HTML 樹;DOM 是這棵可被瀏覽器理解的文件樹。 展開查看正式定義、範例與驗收證據
正式定義
DOM 是瀏覽器以 HTML 建立的文件物件模型;ElementsDevTools 用來檢查它的面板。
什麼時候用
要確認 header、main、section 與標題層級是否真的存在時。
最小範例
在 Elements 展開 body,查看唯一 h1、兩個 section 與各自的 h2。
可觀察證據
DOM 的階層、元素數量與畫面內容一致。
容易混淆
和編輯器裡的原始文字混淆;Elements 顯示的是瀏覽器解析後的目前結果。
主要行動連結primary action link 白話意思:頁面希望訪客下一步做的最重要連結。 展開查看正式定義、範例與驗收證據
正式定義
依頁面任務選出的主要超連結;本堂它是前往 services.html 的一般 a 元素。
什麼時候用
首頁內容完成後,需要讓訪客繼續了解服務時。
最小範例
<a href="services.html">查看服務方案</a>
可觀察證據
Tab 可聚焦,點擊後到達 services.htmlNetwork 回應 200。
容易混淆
和按鈕混淆;前往另一頁使用 a,留在目前頁面觸發動作才考慮 button。

最小例子:先看懂,再複製

這段只保留本堂第一個微成果。先預測結果,再逐行讀;完整檔案請開啟下方最小實驗。

<!doctype html>
<html lang="zh-Hant">
<head>
  <meta charset="utf-8">
  <title>安心服務|首頁</title>
</head>
<body>
  <header>
    <p>安心服務商家</p>
  </header>
  <main>
    <h1>讓日常維護變得簡單</h1>
  </main>
</body>
</html>

Live Lab:逐段讀碼與驗證

每一步只回答五件事:為什麼做、改哪裡、會看到什麼、用什麼證據確認、卡住先查什麼。

  1. Step 1

    先建立 HTML 文件骨架

    目的
    先讓瀏覽器知道這是一份 HTML 文件,再把設定區和內容區分開。
    修改位置
    index.html
    在 body 內建立一個 header、一個 main 與唯一的 h1。
    預期結果
    重新整理後看到一個主標題;Elements 的 body 下只有一個 header、一個 main 與一個 h1。
    驗收證據
    分頁顯示 title,Elements 可數出 header=1、main=1、h1=1。
    卡住先查
    只檢查 index.html 的 body;先不要新增 section 或連結。
  2. Step 2

    把內容分成兩個 section

    目的
    用 section 和 h2 表達品牌介紹與服務內容是兩個不同分區。
    修改位置
    index.html
    在 main 裡新增兩個 section,每個 section 都放一個 h2 與一段 p。
    預期結果
    畫面出現兩個內容分區;Elements 顯示 section=2,且每個 section 都有一個 h2。
    驗收證據
    Elements 展開 main,確認 h1 後有兩個 section,section 內各有 h2。
    卡住先查
    搜尋 <section 與 <h2 的數量,並確認每個 h2 都在 section 裡。
  3. Step 3

    加入前往服務頁的連結

    目的
    用 a 和 href 讓首頁連到同一資料夾中的 services.html
    修改位置
    index.html
    加入一個 href 指向 services.html主要行動連結
    預期結果
    按下連結後網址前往 services.htmlNetwork 對該 HTML 回應 200。
    驗收證據
    Tab 可以聚焦連結,點擊後網址列顯示 services.html
    卡住先查
    確認 index.htmlservices.html 在同一個 files 資料夾,再逐字比對 href。
  4. Step 4

    故意製造一次 404

    目的
    把檔名錯誤變成可觀察的 Network 證據。
    修改位置
    index.html 的 a href
    先開啟連結並觀察 service.html 的 404,不要立刻重寫整份 HTML
    預期結果
    點擊後請求 service.htmlNetwork 顯示 404;畫面無法載入指定服務頁。
    驗收證據
    Network 的 Request URL 是 service.html,Status Code 是 404;檔案樹實際檔名是 services.html
    卡住先查
    先複製 Network 的完整 URL,再只查看 files 資料夾是否有同名檔案。
  5. Step 5

    修回正確的相對路徑

    目的
    用檔案樹與網址證據修正單一 href,而不是重做整個頁面。
    修改位置
    index.html 的 a href
    把 href 從 service.html 改成 services.html,重新整理並再次點擊。
    預期結果
    同一個連結現在前往 services.htmlNetwork 回應 200。
    驗收證據
    網址列是 services.htmlNetworkservices.html Status Code 是 200。
    卡住先查
    只檢查 href 的值與 services.html 檔名,不要先修改 HTML 其他區塊。
  6. Step 6

    Elements 與鍵盤完成語意驗收

    目的
    HTML 結構轉成別人可以重做的證據。
    修改位置
    index.htmlservices.html
    Elements 確認 header=1、main=1、h1=1、section=2;用 Tab 確認 CTA 有清楚 focus
    預期結果
    結構、連結與鍵盤操作都能被觀察;390px 寬度沒有水平溢出。
    驗收證據
    提交 Elements 結構、title、services.html 200、Tab focus 與窄版畫面結果。
    卡住先查
    一次只檢查一件事:先數 DOM,再測連結,最後按 Tab。
操作層級Live Lab 段落導覽:切換六個實驗步驟

讀碼順序:先找入口,再找被引用的檔案,最後用畫面、DOMConsoleNetwork 或資料結果驗證。

互動問答

先回答目前這一題,再展開解析;完成後按下一題,讓每一次回答都回到檔案或瀏覽器完成驗證。

Q1概念理解 doctypeDOCTYPE declaration)」在本堂要解決什麼問題? 本題線索:doctype;回到名詞卡與 檢視原始檔案第一行,頁面以標準模式呈現。 展開解析收合解析

白話解析:

告訴瀏覽器這份文件使用現代 HTML 規則。 正式來說,位於文件最前方、宣告 HTML 文件型別的指示,不是一般內容元素。

對照位置:

回到名詞卡「doctype」,再看 檢視原始檔案第一行,頁面以標準模式呈現。

預期觀察:

你應該能用自己的話說出:建立每一份 HTML 文件時。

常見錯誤:

不要只回答「它是doctype」;那是重複名詞,不是說明責任。

立即驗證:

開啟 examples/minimal/index.html,依序做「開啟 examples/minimal/index.html,先點擊頁面內連結,再觀察網址中的 #services,最後用 Elements 展開文件階層。」並記下畫面或工具證據。

Q2程式碼閱讀 修改指定規則後,你預測畫面會看到什麼? 本題線索:index.html;要修改:在 body 內建立一個 header、一個 main 與唯一的 h1。;觀察:分頁顯示 title,Elements 可數出 header=1、main=1、h1=1。 展開解析收合解析

白話解析:

先看檔案責任,再預測結果。這一步的目的:先讓瀏覽器知道這是一份 HTML 文件,再把設定區和內容區分開。

對照位置:

對照 Live Lab Step 1,位置是 index.html;先找到文件骨架,再把實際 HTML 貼到自己的 index.html

預期觀察:

重新整理後看到一個主標題;Elements 的 body 下只有一個 header、一個 main 與一個 h1。

常見錯誤:

如果只改了檔案但沒有結果,先不要重寫全部;只檢查 index.html 的 body;先不要新增 section 或連結。

立即驗證:

實際操作後檢查 分頁顯示 title,Elements 可數出 header=1、main=1、h1=1。。

Q3概念比較 doctype」和「head/body」在本堂的責任有什麼不同? 本題線索:比較 doctypehead/body;操作位置:index.html 展開解析收合解析

白話解析:

doctype:告訴瀏覽器這份文件使用現代 HTML 規則。;head/body:head 放分頁設定,body 放訪客看得到的內容。

對照位置:

對照兩張名詞卡的正式定義:位於文件最前方、宣告 HTML 文件型別的指示,不是一般內容元素。/head 承載 title 等文件中繼資料,body 承載文件的主要可見內容。

預期觀察:

你應該能指出兩者分別出現在哪個檔案或工具,以及哪一個結果會改變。

常見錯誤:

不要把「改變畫面」當成所有技術的責任;先說清楚誰負責結構、呈現、行為或驗收。

立即驗證:

index.html 做「在 main 裡新增兩個 section,每個 section 都放一個 h2 與一段 p。」,再用 Elements 展開 main,確認 h1 後有兩個 section,section 內各有 h2。 比較前後差異。

Q4除錯驗收 如果完成操作後結果不對,你會先從哪一個證據開始查? 本題線索:index.htmlservices.html;第一個檢查位置:提交 Elements 結構、title、services.html 200、Tab focus 與窄版畫面結果。 展開解析收合解析

白話解析:

先描述症狀,再提出一個最小假設。本堂常見錯誤是:只截畫面,不提供 Elements、網址、Networkfocus 證據。

對照位置:

對照最後一段 Live Lab:index.htmlservices.html;檢查方式:一次只檢查一件事:先數 DOM,再測連結,最後按 Tab。

預期觀察:

你要能指出一個具體位置,而不是一次修改很多檔案。

常見錯誤:

不要先清快取、重裝工具或複製 Solution;先查看第一個可觀察錯誤。

立即驗證:

重新操作並留下「症狀、證據、假設、單一修正、結果」五項紀錄。

除錯對照表:先看證據,再改一處

看到的症狀第一個證據先檢查什麼
頁面階層不對Elements 的 DOM確認 body 下 header=1、main=1、h1=1,並逐一展開兩個 section。
點連結沒有到服務頁網址列與 Network確認 href 是 services.html,再看目標檔案是否回應 200。
看到 404Network 的完整 URL/狀態碼逐字比對 service.html 與檔案樹實際的 services.html
頁面內連結沒有移動網址列的 hash確認目標 section 有 id="services",連結使用 href="#services"

常見誤解

本堂任務與驗收

建立自己的 commercial-site/index.htmlservices.html;首頁有一個 header、一個 main、一個 h1、兩個各含 h2 的 section,並有指向 services.html 的文字連結。

官方延伸閱讀