HTML 元素

HTML 中，一個 HTML 元素是 HTML 檔案的一個基本組成單元。HTML 檔案採用採用樹形結構安排 HTML 元素。更進一步的說，一個 HTML 元素是一個滿足一項或多項 DTD 要求的元素。HTML 元素可以擁有屬性和內容，可以是標題、段落、連結、列表、嵌入媒體或者其他的任何符合 DTD 要求的格式。

概述

1.1 語法

在 HTML 語法中，大多數元素編寫一個開始標記和結束標記，與其之間的內容。HTML 標記是由元素名稱，包圍於兩側之小於號與大於號之括號所組成。其結束標記擁有一斜線位在小於號之括號後，有別於其起始標記。例如：一個段落是由 p 元素所代表，其被寫成

在 HTML 語法中，大多數元素編寫......

然而，並非所有的此類元素需要結束標記，甚至是開始標記必須存在。某些元素，即所謂的 void 空元素，並無結束標記。典型的例子即 br 元素，其表示一個顯著之換行，像是一首詩或一個住址。一個空元素的行為是預先定義的，並且它不能包含任何內容或其他元素。例如：在電影海底總動員中的牙醫師的地址將被寫成

P. Sherman42 Wallaby WaySydney

HTML 元素可以是容器或者為空。

容器元素 結構如下：

一個開始標記表示一個元素的開始，標記本身還可以包含屬性；
任何數量的屬性（和屬性的值）；
內容（文字和／或子元素）；
一個結束標記，使用和起始標記完全相同的元素名但前面附加一個斜線字元 。並非所有的元素都要求結束標記，有些元素的結束表示是可有可無的（如 p），有些是一定不可以有的（如 input）。

空元素指僅包含一個標記，該標記既是開始標記同時也是結束標記。空元素可以有任意數量的屬性。在 XHTML 規範中，標記中的斜線符號是必須的。要求使用一個單獨標籤開啟與關閉元素。若要指定其為一個空元素，符號 "/" 包含於標記之結尾（不能與位於結束標記中的開始的符號 "/" 混淆）。例如：

P. Sherman42 Wallaby WaySydney

英語中有時 HTML 元素也被稱為 “tags”，嚴格的說 tag 是指元素的開始或者結束標記。

用來指示元素的附加的性質。放在開始標記中。例如：abbr 元素，其表示縮寫，預計一個 title 屬性包含其開始標記。將被寫成

abbr.

Parts of an HTML container element:

Start tag:

Attribute:

name: class

value: foo

Content: This is a paragraph.

End tag:

complete: This is a paragraph.

在 HTML 中，元素（和屬性）名字可以是大寫或者小寫，但在 XHTML 中，必須是小寫。大寫是舊的用法，並且是 HTML 規範中說明的方法，但是小寫更為通用。

1.2 相關標準

HTML 元素是在自 1995 年以來發布的一系列免費開放標準中定義的，最初由 IETF 以及隨後由 W3C 制訂。

1990 年代的瀏覽器大戰期間，網頁瀏覽器的軟體商開始不斷的新增自定義的元素，有些被後來的標準吸收。並非所有的軟體商都支援這些非標準的元素，一般對於非標準的元素，或者是忽略，或者是導致顯示不正確。

1998 年，XML（一種簡化的 SGML）引入一種方法，允許任何人開發自己的元素並融合到 XHTML 檔案中，使用支援 XML 的瀏覽器（使用者代理）可以瀏覽任意元素。

而後採用 XML 相容的辦法，重新制訂了 HTML 4.01 標準，XHTML 1.0（擴充套件的 HTML）。二者的元素相同，絕大多數情況下，XHTML 1.0 檔案的元素在 HTML 4.0 檔案中是合法的。本文除非另外指出，應用的都是基於 SGML 的 HTML，對於 XHTML 多數情況下仍然適用（二者區別見 HTML）。

1.3 當前的狀態

自從 HTML 第一版以來，已經有數個元素因為過期，不再新的標準中推薦使用或者乾脆刪除。

目前由於並存三種 HTML 4.01／XHTML 1.0 DTD 標準，而使得 HTML 的驗證變得複雜起來，這三種標準分別是：

Transitional，包含過期的元素。該標準制訂的目的是提供一個過渡的時期，使得 HTML 作者可以逐漸適應新的擴充套件標準；
Frameset，另一種過渡標準，但是允許作者使用 frameset；
Strict，符合現代（1999 年以後）的標準。

HTML 第一個標準（HTML 2.0）包含四個過期的元素。其中一個在 HTML 3.2 中被列為無效。所有的四個在 HTML 4.01 Transitional 中都被列為無效，HTML4.01 Transitional 標準此外還將另外十個元素定義為無效。以上這些元素再加兩個在 HTML 4.01 Strict 中同樣被定義為無效。由於 frame 元素在顯示方面的諸多問題以及其功能已經可以由其他元素替代，在未來的標準中不再保留，雖然目前在 Transitional 和 Frameset DTD 中仍然有效。

（嚴格的說，目前的 XHTML 標準 XHTML 1.1（2001）根本不支援 frame。基本上與 XHTML 1.0 Strict 相同，但是又包含了 Ruby markup 模組。）

一個經常導致錯誤理解的原因是不嚴格的使用 deprecated（過期）一詞來泛指過期的和無效的，以及今後一段時間過期的不同的狀態。

1.4 展示和行為

根據分離原則，HTML 的功能在於給一個檔案的內容增加語義和結構的資訊。增加檔案的展示和行為的功能，例如增加 CSS stylesheets 和圖形來增加檔案的展示功能；透過連結到外部檔案和指令碼增加與使用者互動的行為。User agent 也可以根據作者所提供的 stylesheet 在不同的介質（顯示器，印表機）上展示不同效果。同時保持語義上的一致。

檔案結構元素

這是 HTML 檔案的根元素，所有其他的元素均包含在其中。

在 HTML 2.0 中標準化，目前仍然在使用。

包含 HTML 標題定義、外部、指令碼程式碼、格式程式碼等處理資訊和元資料。

在 HTML 2.0 中標準化，目前仍然在使用。

（所包含的子元素見檔案頭元素）

包含 HTML 檔案的內容.

在 HTML 2.0 中標準化，目前仍然在使用。

（所包含的子元素見檔案內容元素）

檔案頭元素

該元素的屬性 href 的值給檔案中所有的相對的 href 及其它連結提供一個基本的 url 路徑。必須出現在任何引用外部資源的元素之前。在每個 HTML 檔案中，只允許出現一個 base 元素。base 元素沒有內容。其另外一個可選屬性 target 的值可以為：blank、parent、self、top、

framename，規定頁面中所有的超連結和表單在何處開啟；該屬性會被每個具體連結中的 target 屬性覆蓋。

在 HTML Tags 中曾經提到一個開發版的 BASE 元素；在 HTML 2.0 中得以標準化；目前沒有變化。

指定一個基本的字型，包括字元的大小，字型和顏色，與 font 元素搭配使用。已經過期，推薦使用 CSS.

在 HTML 3.2 中標準化；在 HTML 4.0 Transitional 中過期；並已於 HTML 4.0 Strict 中失效。

isindex 既可以出現在檔案頭，也可以出現在檔案體內，但是隻能出現一次。需要伺服器端的搜尋引擎的支援。

出現在檔案頭表示這個檔案是一個可搜尋的索引。在頁面上顯示成一個單行的文字輸入框用來輸入關鍵詞。頁面被提交後，query string 被加到當前的 URL 後面，輸出的檔案搜尋的關鍵字被加亮顯示。一般來說，如果伺服器支援這個功能的話會自行的加入 isindex。

ISINDEX 在 HTML Tags 出現，在 HTML 2.0 中標準化。在 HTML 4.0 Transitional 中過期。在 HTML 4.0 Strict 中是無效的元素。

指定連結到其他檔案，如 previous 和 next 連結，或替代版本。常見的用途是連結至外部的 CSS 樣式表，使用形式：

:

較少見但重要之用途是透過使用微格式持續性支援導覽提示。若干常見之關是已被定義，可能透過瀏覽器介面傳達給使用者，而非直接於網頁中。

:

檔案之 head 元素可能包含任何數量之 link 元素。該 link 元素擁有，但無內容。

LINK 存在於 HTML Internet Draft 1.2，且已在 HTML 2.0 中標準化；目前沒有變化。

可用於指定關於檔案之額外中繼資料，如作者、出版日期、有效日期、頁面描述、關鍵字，或者透過其他 header 元素及

之其他未提供的資訊。因其共通性，meta 元素指定關聯的 key-value pairs。一般情況之下，meta 元素傳達關於檔案之隱藏資訊。若干 meta 標籤可被使用，上述之全部應被巢狀在 head 元素中。每個 meta 元素之特定目的是由其屬性來定義。

在一種形式中，meta 元素可指定應經由實際內容之前的網頁伺服器寄送之 HTTP 標頭，例如：

:

— this specifies that the page should be served with an HTTP header called foo that has a value bar.

在一般形式中，meta 元素指定 HTML 網頁的 name 及關聯的 content HTML 屬性描述方面。為了防止可能發生歧義，一個可選取之第三方屬性：scheme 可被支援於指定一個定義該 key 及其值的含意之語意框架：例如：

:

在本範例中，meta 元素辨識其自身為包含 foo 元素，包含 bar 值，從 DC 或都柏林核心資源描述框架.

在 HTML 2.0 中標準化；目前沒有變化。

使用於包含泛型物件在檔案標頭中。雖然很少使用在 head 元素中，但也可能用來擷取外部資料，並將之與目前的檔案關聯。

在 HTML 4.0 中標準化；目前沒有變化。

可作為一個容器用於指令碼說明或連結至外部指令碼，包含可選取之 src 屬性。此外，使用於檔案主體中以動態生成兩個區塊或內聯內容。

在 HTML 3.2 中標準化；目前沒有變化。

指定檔案的 CSS 樣式，其形式通常為：

: ...

既可作為一個容器之樣式說明，亦可連結至外部 CSS 樣式表，例如，在 CSS 中，與表單中的 @import 指令：

: @import url;

在 HTML 3.2 版本中標準化；目前沒有變化。

定義檔案標題。在每個 HTML 及 XHTML 檔案中為需求的。使用者代理可以不同方式使用標題，例如：

網頁瀏覽器通常將之顯示在標題列中，當視窗開啟時，或者（在適用的情況）顯示在工作列中，當視窗最小化時。
當儲存該頁面時可為預設檔案名稱。
搜尋引擎之網路編目程式可能會特別注意在標題中使用的文字。

title 元素不能包含其他元素，僅文字。只有一種 title 元素在檔案中被允許。

TITLE 存在於 HTML 標籤，並在 HTML 2.0 中標準化；目前沒有變化。

檔案內容元素

在視覺化瀏覽器中，可顯示元素可呈現為區塊或內行。雖然所有元素是檔案序列之一部分，但是區塊元素 出現在其父元素中：

作為不跨行之矩形物件；
使用區塊邊距，其寬度及高度內容可在周邊元素中被單獨設定。

反言之，內行元素被視為檔案文字流之部分；其無法擁有邊距、寬度或高度設定，並且跨行。

4.1 區塊元素

區塊元素（或稱區塊層級元素）擁有矩形結構。在預設情況下，這些元素將佔據父元素的整個寬度，因而不允許任何其他元素佔據已被其所佔的同一水平空間。

區塊元素的矩形結構經常稱之為盒模型，並由幾個部分所組成。每個元素包含以下內容：

一個塊元素的內容（content）是放置在一個塊元素的開啟和關閉標記之間的實際文字（或其他媒體）。
一個塊元素的留白或稱填充（padding）師元素邊框與元素內容之間的空間。其仍構成上述塊元素的組成部份。padding 也是塊元素在物理上的一部分。不應被用於建立兩個塊元素之間的空白。任何背景樣式分配到塊元素，例如背景影像或色彩，將在 padding 內可見。增加塊元素的 padding 的尺寸，則將增加塊元素所佔的尺寸。
一個塊元素的邊框（border）是元素的絕對末端，並圍成塊的周圍。邊框之厚度的增長會增加塊元素尺寸。
一個塊元素的邊距或稱外邊距（margin）是環繞塊元素周圍之空白。任何其他元素之 content、padding 及 border 將不允許輸入該區域，除非迫於一些進階的 CSS 佈局。使用多數的標準 DTD，margin 在不同元素的左邊和右邊將互相推離。另一方面，margin 在元素的上方及下方，將不堆疊或相互交融。這意味著位於該元素之間的空白將與較大的 margin 一樣大。

上述部分僅指 CSS 渲染的具體實施，並與 HTML 元素本身無關。

4.1.1 基本文字

建立一段落，也許為最常見之區塊層級元素。

P 在 HTML Tags 中已經存在，並且在 HTML 2.0 中標準化；目前仍在使用。

不同層級之 section 標題。界定為最高層級標題，為下一層級（次級 section），又低於上一層級，依此類推直到。有時其又統稱為標記，n 表示任何有效之層級標題。

多數視覺化瀏覽器預設將標題顯示為大型粗體字，雖然其可被 CSS 覆蓋。事實上，Heading 元素並非只用於建立大型字或粗體字，其不應使用於顯示樣式化文字。反言之，其描述了檔案之結構和組織。部分程式利用其產生輪廓及表格內容。

Headings 在 HTML Tags 中已經存在，並且在 HTML 2.0 中標準化；目前仍在使用。

4.1.2 列表

定義列表（Definition List）是一種特殊列表，通常包含一系列 “術語” 及其 “定義”。定義列表組成的名稱 - 值組（先前至 HTML5 定義成一個定義清單，並在早期版本之 HTML5 被稱之為關聯清單）。定義列表之目的為「術語及定義、中繼資料主題和值、問題及答案，或者名稱 - 值資料的任何其他群組」之群組。

DL 在 HTML Tags 中已經存在，並且在 HTML 2.0 中標準化；目前仍在使用。

在定義列表（先前定義術語在定義清單中）中的名稱。

DT 在 HTML Tags 中已經存在，並且在 HTML 2.0 中標準化；目前仍在使用。

定義列表（先前的一個術語之定義，在定義清單中）中的值。

DD 在 HTML Tags 中已經存在，並且在 HTML 2.0 中標準化；目前仍在使用。

有排序（列舉）之編號清單。type 元素可用於指定排序型別，但 CSS 樣式表提供了更多控制：{list-style-type:foo}。其預設為阿拉伯數字編號。若要使用 type 屬性，請使用 "foo">，以下列專案之一取代 foo：

A 表示 A, B, C...

a 表示 a, b, c...

I 表示 I, II, III...

i 表示 i, ii, iii...

1 表示 1, 2, 3...

OL 在 HTML Internet Draft 1.2 中已經存在，並且在 HTML 2.0 中標準化；目前仍在使用。

未排序（專案符號）清單。CSS 樣式表可用於指定其專案符號：{list-style-type: foo}。其預設專案符號為一個空心圓。

UL 在 HTML Tags 中已經存在，並且在 HTML 2.0 中標準化；目前仍在使用。

在排序 (ol) 或未排序 (ul) 清單中之列表專案。

LI 在 HTML Tags 中已經存在，並且在 HTML 2.0 中標準化；目前仍在使用。

目錄清單。該元素之原始目的從未廣泛支援；已被替代，故不建議使用。

DIR 在 HTML Tags 中已經存在，並於 HTML 2.0 中標準化；在 HTML 4.0 Transitional 中不建議使用；在 HTML 4.0 Strict 中已失效。

4.1.3 其他區塊元素

檔案作者之聯絡資訊。

ADDRESS 在 HTML Tags 中已經存在，並且在 HTML 2.0 中標準化；目前仍在使用。

一個區塊層級引用（blockquote），用於當 quotation 包含區塊層級元素，如段落。cite 屬性可能提供來源，且必須是完全合格之統一資源標誌符。

區塊 quotation 的簡報在視覺化瀏覽器中經常從其兩個 margin 縮排之。

BLOCKQUOTE 在 HTML Internet Draft 1.2 中已經存在，並且在 HTML 2.0 中標準化；目前仍在使用。如需更多資訊，請參見 blockquote 元素。

建立一個區塊層級之置中對齊區域。已由使用 CSS 樣式表定義置中對齊或其他元素之方式替代，故不建議使用。

在 HTML 3.2 中標準化。

標記內容中已刪除的 section。該元素亦使用為 inline。

在 HTML 4.0 中標準化；目前仍在使用。

一個區塊層級之邏輯區。沒有語意的通用元素用於區分檔案的 section，通常為目的，例如由 CSS 樣式表或 DOM 呼叫來控制之簡報或行為。

在 HTML 3.0 Drafts 中出現；在 HTML 3.2 中標準化；目前仍在使用。

水平線。表象規則亦可被 CSS 樣式表繪製。

在 HTML 2.0 中標準化；目前仍在使用。

標記一個已插入內容之 section。該元素亦使用為 inline。

在 HTML 4.0 中標準化；目前仍在使用。

指令碼的替代內容。不同於指令碼（script），其只能作為區塊元素。

在 HTML 4.0 中標準化；目前仍在使用。

表示是預先格式化的文字。在元素內的文字通常會被顯示為等寬字型，就如同是在文字檔案中的文字一樣（參見 ASCII 藝術）。儘管瀏覽器在其他的 HTML 元素中會忽略空白字元，但在 pre 中，空白會被視為是作者故意為之而被呈現出來。（在 CSS 的屬性：{white-space: pre; font-family: mono-space;}，其他的元素也可以相同的方式呈現。）該元素可包含任何 inline 元素，但下列除外：影像（IMG）、物件（OBJECT）、大型字（BIG）、小型字（SMALL）、上標（SUP）及下標（SUB）。

PRE 在 HTML Internet Draft 1.2 中已經存在，並且在 HTML 2.0 中標準化；目前仍在使用。

在檔案中放置指令碼。在 head 中以及在 inline 內容中也具有效果。

: 注意：SCRIPT 本身並非區塊或內行元素；其本身不應全部顯示，但其可包含說明以動態生成區塊或內行內容兩者。

在 HTML 3.2 中標準化；目前仍在使用。

4.2 行內元素

行內元素無法直接放置在 body 元素中；其必須完全巢狀於區塊及元素中。

4.2.1 錨

錨元素之所以稱為 “錨”，是因為網頁設計者可以用它們來將 URL 和網頁上的一些文字 “繫”（anchor）在一起。當用戶在瀏覽器中檢視網頁時，他們可以透過點選文字來啟用連結，以訪問連結中 URL 指向的頁面。

在 HTML 中，錨既可以是超級連結的來源，也可以是目標端。

透過使用 href 屬性（hypertext reference ），錨可以成為到文件中另一個部分的連結，也可以透過使用一個外部 URL 來指向另一個資源（如網頁）。

或者（也可以是同時），透過使用 name 或 id 屬性，使這個元素成為目標。URL 可以透過片段識別符號連結到這個目標。現在，任何元素都可以透過使用 id 屬性來變成一個錨，因此不再必要。

A 在 HTML Tags 中已經存在，並且在 HTML 2.0 中標準化；目前仍在使用。

4.2.2 短語元素

4.2.2.1 常用的短語元素

表示本元素是一個縮寫，title 屬性中可以包含全稱：

: 微機

在 HTML 4.0 中標準化，目前仍然在使用。

與 abbr 元素類似。（拼音文字中 Acronym 是指大寫的首字母組合成的詞，比如 Hyper-Text Markup Language 的 Acronym 是 HTML; Abbreviation 的概念更廣泛些，可以是將一個較長的詞後面部分去掉，用剩下的部分表示詞的意思。中文中沒有類似的區別）:

:HTML

在 HTML 4.0 中標準化，目前仍然在使用，在 HTML5 中不支援。

表示本元素是一個詞條的定義。

DFN 在 HTML Internet Draft 1.2 中已經存在，在 HTML 3.2 中完全標準化，目前仍然在使用。

強調本元素，傳統上顯示為斜體。

EM 在 HTML Internet Draft 1.2 中已經存在，在 HTML 2.0 中完全標準化，目前仍然在使用。

加重一個詞條，（傳統上顯示為粗體）。

有助聽功能的瀏覽器可能會使用不同的聲音來表述加重的詞。

STRONG 在 HTML Internet Draft 1.2 已經存在，在 HTML 2.0 中完全標準化，目前仍然在使用。

4.2.2.2 計算機術語元素

這些與元素主要用於方便顯示計算機軟體編碼和與使用者互動；顯示原始碼變數；使用者輸入；以及終端輸出。

顯示一段程式碼。通常用等寬字型顯示：Code snippet.

CODE 在 HTML Internet Draft 1.2 中出現，並且在 HTML 2.0 最終標準化； 目前仍在使用。

顯示一段程式或指令碼輸出的樣本。

SAMP 在 HTML Internet Draft 1.2 中出現，並且在 HTML 2.0 最終標準化； 目前仍在使用。

鍵盤 - 顯示使用者輸入的文字。

KBD 在 HTML Internet Draft 1.2 中出現，並且在 HTML 2.0 最終標準化； 目前仍在使用。

顯示一個變數。

VAR 在 HTML Internet Draft 1.2 中出現，並且在 HTML 2.0 最終標準化； 目前仍在使用。

4.2.2.3 視覺效果

視覺效果的元素僅僅對可視瀏覽器起作用，因此不推薦使用，如果可能應該使用層疊樣式表。部分元素在 HTML 4 / XHTML 1.0 中被宣佈過期或者無效的，其它的在當前的 XHTML 2.0 草案 XHTML 2.0 中被定義為無效的。當前的 HTML 5 草案 HTML 5 中，b, i 和 small 還是有效的.

在可能的情況下，將字型設定成粗體。（等效的 CSS 是：{font-weight: bold}。）... 在可視的瀏覽器中有相同的效果，但是有更強的語義。

B 在 HTML Internet Draft 1.2 中定義，並且在 HTML 2.0 中標準化，目前仍在使用。

4.3 圖形和物件

src 屬性指定影像的 URL。alt 屬性提供影像的替代文字。IMG 由馬克・安德森所提出並實作在 NCSA Mosaic 網頁瀏覽器。

IMG 在 HTML Internet Draft 1.2 中定義，並且在 HTML 2.0 中標準化，目前仍在使用。

非標準元素

文字閃爍特效。BLINK 源自於 Netscape Navigator。由於該特效可能會對患者產生負面影響，在 HTML 2.0 後被列為過期或無效。

文字滾動特效。MARQUEE 源自於 Internet Explorer。由於該特效可能會對患者產生負面影響，在 HTML 4.01 後被列為過期或無效。