精通HTML字體:從基礎語法到現代網頁排版的關鍵技巧

文字是網頁構成的核心,而字體的呈現方式——包括其大小、顏色、樣式與字型——直接影響著使用者的閱讀體驗與網站的整體質感。在網頁發展的歷史中,控制字體的方法經歷了重大的演變。從早期直接在 HTML 中定義樣式的 <font> 標籤,到現今將內容結構(HTML)與外觀樣式(CSS)徹底分離的現代化作法。

本文將帶您深入探討 HTML 文字與字體的完整知識體系。我們將回顧已被淘汰的傳統方法以瞭解其歷史背景,並著重介紹當代網頁開發中控制字體的標準——CSS。無論您是網頁設計的初學者,還是希望鞏固基礎知識的開發者,這篇文章都將為您提供一個詳細且全面的指南。

傳統方法:已被棄用的 <font> 標籤

在 HTML4 的時代,<font> 標籤是改變文字外觀的主要工具。它允許開發者直接在 HTML 文件中設定文字的顏色、大小和字型。

基本語法:

<font face="字型名稱" size="大小" color="顏色">這是一段文字。</font>

這個標籤主要依賴三個屬性來控制文字樣式,讓文字產生變化:

屬性

屬性值與說明

範例

color

設定文字顏色。可以使用顏色名稱(如 red)或十六進位色碼(如 #FF0000)。

<font color="blue">藍色文字</font>

size

設定文字大小。範圍是 1 到 7 的整數,預設值為 3。數字越大,文字越大。

<font size="5">大小為 5 的文字</font>

face

設定文字的字型。例如「標楷體」、「Arial」、「tahoma」。瀏覽者人的電腦必須安裝該字型才能正確顯示。

<font face="微軟正黑體">微軟正黑體</font>

Example:

<html>
<head>
  <title>Font 標籤範例</title>
</head>
<body>
  <p>
    這是一段<font face="標楷體" size="5" color="red">經過特殊設定</font>的文字。
  </p>
</body>
</html>

上方程式碼的執行結果,就是在頁面上顯示一段經過特殊樣式設定的文字。

為何 <font> 標籤被棄用?

儘管 <font> 標籤在當時很實用,但它存在嚴重缺陷。最主要的問題是它將 內容(HTML)與表現(樣式)混雜在一起。這導致了以下問題:

1.  維護困難:若要修改整個網站的字體顏色,例如將所有紅色文字改成綠色,必須手動更改每一個 <font> 標籤,極其耗時且容易出錯。

  • 程式碼臃腫:大量重複的樣式標籤會讓 HTML 檔案變得龐大,影響載入速度。

  • 語意不清:HTML 的核心價值在於描述內容的「結構」與「語意」,而 <font> 標籤只關心外觀,不具任何語意價值。

  • 可訪問性差:對於螢幕閱讀器等輔助工具來說,這些純樣式的標籤是沒有意義的噪音資訊。

因此,自 HTML5 標準確立以來,<font> 標籤已被正式棄用。現代網頁開發強烈建議使用 CSS 來控制所有與字體相關的樣式。

基礎文字格式化:語意與樣式並存的標籤

除了 <font> 標籤外,HTML 提供了一系列用於格式化文字的標籤。與 <font> 不同,這些標籤多數帶有語意(Semantic)上的意義,不僅影響外觀,也告訴瀏覽器和搜尋引擎這段文字的「角色」。

標籤

說明與用途

預設外觀

<b>

粗體 (Bold):用於引起讀者注意,但不增加語意上的重要性。例如產品名稱、關鍵字。

粗體

<strong>

重要 (Strong Importance):表示內容非常重要、嚴重或緊急,是真正的重點文字。對螢幕閱讀器而言,語氣會加重。

粗體

<i>

斜體 (Italic):用於外來語、專業術語、思考或旁白等,使文字在語氣或風格上與周圍不同,是常見的斜體字。

斜體

<em>

強調 (Emphasis):用於強調文字,改變句子的語意重點。螢幕閱讀器會以強調的語氣朗讀。

斜體

<u>

底線 (Underline):在網頁上應謹慎使用,因為使用者習慣將底線與超連結聯想在一起。可用於標示專有名詞或拼寫錯誤。

\<u>底線\</u>

<s>, <del>

刪除線 (Strikethrough):<s> 用於表示不再準確或相關的內容;<del> 則明確表示內容已被刪除。

\<s>刪除線\</s>

<sup>

上標 (Superscript):用於數學指數 (x\<sup>2\</sup>) 或註腳。

x¹⁰

<sub>

下標 (Subscript):用於化學式 (H₂O) 或數學下標。

H₂O

<mark>

標記 (Mark):用於凸顯或標記與使用者當前活動相關的文字,如同用螢光筆劃記。

\<mark>標記文字\</mark>

<code>

程式碼 (Code):用於表示一小段電腦程式碼。通常以等寬字型顯示。

<code>console.log()</code>

<pre>

預格式化 (Preformatted):保留文字中的空白和換行符,字元的寬度通常是固定的。適合用於顯示大塊的程式碼或 ASCII 藝術。

<pre>保留空白和 換行</pre>

<b> vs <strong> 與 <i> vs <em> 的抉擇

當您希望文字在語意上更重要時,使用 <strong> 來標示粗體字。
  當您只想讓文字在視覺上變粗以吸引注意,而無特殊重要性時,使用 <b>。
  當您想改變句子重音來影響其涵義時,使用 <em>。
  當您想將文字標示為不同語氣或類型(如書名、外語)時,使用 <i>。

在多數情況下,優先考慮使用具有語意的 <strong> 和 <em>。

現代標準:使用 CSS 全面掌控字體樣式

CSS (Cascading Style Sheets) 是現代網頁設計的基石,它允許我們將樣式規則從 HTML 架構中分離出來,實現更靈活、更強大的字體控制。

有三種方式可以將 CSS 應用於 HTML:

1.  外部樣式表 (External CSS):將所有樣式寫在一個獨立的 .css 檔案中,並在 HTML 的 <head> 區域中連結。這是最佳實踐,易於管理和維護。
2.  內部樣式表 (Internal CSS):將樣式寫在 HTML 檔案 <head> 區域的 <style> 標籤內。適用於單一頁面的特殊樣式。
3.  行內樣式 (Inline CSS):直接在 HTML 元素的 style 屬性中編寫樣式。應盡量避免使用,因其再度將樣式與內容混合。

下方是控制字體最重要的四個 CSS 屬性:

font-family (字型)

此屬性用於設定字型。由於無法保證所有使用者電腦上都安裝了特定字型,最佳做法是提供一個「字型備用列表」(Font Stack)。瀏覽器會從列表的第一個字型開始依順序嘗試,如果找不到,則繼續嘗試下一個。

範例:

p {
  /* 優先使用 Helvetica Neue,若無則用 Helvetica,再無則用 Arial,最後使用任何無襯線字體 */
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.chinese-text {
  /* 針對繁體中文的字型備用列表 */
  font-family: "PingFang TC", "Microsoft JhengHei", "微軟正黑體", sans-serif;
}

font-size (文字大小)

設定文字的大小。有多種單位可供選擇:

px (像素):絕對單位,精確但不利於縮放。

em:相對單位,相對於父元素的字體大小。

rem (root em):相對單位,相對於根元素(<html>)的字體大小。這是目前最推薦的單位,因其便於實現響應式設計和提升可訪問性。

% (百分比):與 em 類似。

範例:

h1 {
  font-size: 2.5rem; /* 根字體的 2.5 倍 */
}
p {
  font-size: 1rem;   /* 等於根字體大小 */
}

font-weight (字體粗細)

控制文字的粗細程度,可以創造出不同的特效。

關鍵字:normal (預設值, 相當於 400), bold (相當於 700)。
  數值:100 到 900 的整百數值。需要字型本身支援這些粗細級別。

範例:

.bold-text {
  font-weight: bold; /* 或 font-weight: 700; */
}
.light-text {
  font-weight: 300;
}

font-style (字體樣式)

設定文字的樣式,主要用於斜體。

normal:正常。
  italic:斜體。
  * oblique:傾斜體。通常是瀏覽器將正常字體強制傾斜的結果。

範例:

.italic-text {
  font-style: italic;
}

進階應用:網頁字型 (Web Fonts)

過去,網頁設計師只能使用少數幾種所有作業系統都內建的「網頁安全字型」。而現在, grâce à 網頁字型技術,我們可以突破這個限制。網頁字型是儲存在伺服器上的字型檔,當使用者瀏覽網頁時,像 Chrome 這類的瀏覽器會自動下載並套用,確保所有使用者看到的都是設計師指定的特殊字型。

最主流的兩種使用方式:

使用字型服務 (如 Google Fonts, Adobe Fonts)

這是最簡單方便的方法。

1.  挑選字型:在 Google Fonts 等網站上選擇您喜歡的字型。

  • 取得連結:網站會提供一段 <link> 程式碼。

  • 置入 HTML:將這段 <link> 程式碼貼到您 HTML 文件的 <head> 區域。

  • 在 CSS 中使用:直接在您的 CSS font-family 屬性中使用該字型的名稱。

範例 (使用 Google Fonts 的 'Noto Sans TC'):

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;700&display=swap" rel="stylesheet">
/* 步驟 4: 在 CSS 中使用,這些樣式也能應用在按鈕或其他元素的文字上 */
body {
  font-family: 'Noto Sans TC', sans-serif;
}

自行託管字型 (@font-face)

您也可以下載字型檔(如 .woff2 格式),上傳到自己的伺服器,並使用 CSS 的 @font-face 規則來載入它們。

@font-face {
  font-family: 'MyCustomFont'; /* 自訂字型名稱 */
  src: url('path/to/mycustomfont.woff2') format('woff2');
}

body {
  font-family: 'MyCustomFont', sans-serif;
}

常見問題 (FAQ)

Q1: <font> 標籤現在還能用嗎?為什麼不推薦使用?

A: 大部分現代瀏覽器為了向下相容,可能仍會渲染 <font> 標籤的樣式。但它在 HTML5 標準中已被正式棄用。不推薦使用的主要原因是它違反了「內容與樣式分離」的核心原則,會導致網站難以維護、程式碼臃腫且不利於 SEO 與網頁可訪問性。

Q2: <b> 和 <strong> 標籤看起來一樣,有什麼不同?我應該用哪一個?

A: 視覺上它們預設都是粗體,但語意完全不同。<strong> 代表內容本身具有「強烈的重要性」,而 <b> 僅是為了在視覺上「引起注意」,沒有增加重要性。您應該根據文意來選擇:如果內容很重要,用 <strong>;如果只是想讓一個詞在段落中突出,用 <b>。

Q3: 為什麼我用 font-family 設定的中文字型在別人的電腦上沒有效果?

A: 最常見的原因是對方電腦中沒有安裝您指定的那個中文字型。解決方案有三:1) 使用常見的預設字型(如微軟正黑體、蘋方體);2) 提供一個包含多種常見字型的備用列表;3) 使用網頁字型技術,讓瀏覽器自動下載所需字型,確保顯示效果一致。

Q4: 什麼是「網頁字型」(Web Fonts)?使用它有什麼好處?

A: 網頁字型是指將字型檔存放在網路伺服器上,當使用者造訪網站時,瀏覽器會像下載圖片一樣下載該字型並應用到文字上。最大的好處是,設計師可以自由選用各種特殊、美觀的字型,而不必擔心使用者電腦上是否安裝了這些字型,從而實現了設計的創意自由和品牌視覺的一致性。

總結

網頁字體的處理方式反映了網頁技術的進步,從早期混亂的 <font> 標籤,演進到今日結構與樣式分離的清晰模式。

核心觀念回顧:

停止使用 <font> 標籤:它是過時的技術,應全面擁抱 CSS。

理解語意化標籤:合理使用 <strong>, <em> 等標籤,讓您的 HTML 部分不僅美觀,更有內涵。

掌握 CSS 核心屬性:font-family, font-size, font-weight, font-style 是您控制文字外觀的利器。

善用網頁字型:透過 Google Fonts 或 @font-face,讓您的設計不再受限於傳統字型,展現獨特風格。

遵循內容與樣式分離的原則,不僅能讓您的網站更易於維護、載入更快,還能提升其在搜尋引擎上的表現和對所有使用者的可訪問性。這正是專業網頁開發的基礎所在。

資料來源

返回頂端