可接受的值

對於身份證

Version >= 五

id 的價值的唯一限制是:

  1. 它必須在文件中是唯一的
  2. 它不能包含任何空格字元
  3. 它必須包含至少一個字元

所以值可以是所有數字,只有一位數,只是標點字元,包括特殊字元,等等。只是沒有空格。

所以這些都是有效的:

<div id="container"> ... </div>
<div id="999"> ... </div>
<div id="#%LV-||"> ... </div>
<div id="____V"> ... </div>
<div id="⌘⌥"> ... </div>
<div id="♥"> ... </div>
<div id="{}"> ... </div>
<div id="©"> ... </div>
<div id="♤₩¤☆€~¥"> ... </div>

這是無效的:

<div id=" "> ... </div>

當包含在同一文件中時,這也是無效的:

<div id="results"> ... </div>
<div id="results"> ... </div>

Version <= 4.01

id 值必須以字母開頭,然後只能跟隨:

  • 字母(AZ / az)
  • 數字(0-9)
  • 連字元(“ - ”)
  • 下劃線(“_”)
  • 冒號(“:”)
  • 句號(“。”)

參考上面 HTML5 部分中的第一組示例,只有一個有效:

<div id="container"> ... </div>

這些也是有效的:

<div id="sampletext"> ... </div>
<div id="sample-text"> ... </div>
<div id="sample_text"> ... </div>
<div id="sample:text"> ... </div>
<div id="sample.text"> ... </div>

同樣,如果它不是以字母(大寫或小寫)開頭,則它無效。

對於一個類

類的規則與 id 基本相同。不同的是,class並不需要在檔案中是唯一的。

參考上面的示例,雖然這在同一文件中無效:

<div id="results"> ... </div>
<div id="results"> ... </div>

這完全沒問題:

<div class="results"> ... </div>
<div class="results"> ... </div>

重要說明:如何在 HTML 之外處理 ID 和 Class 值

請記住,上面的規則和示例適用於 HTML 的上下文。

idclass 的值中使用數字,標點符號或特殊字元可能會在其他上下文中引起麻煩,例如 CSS,JavaScript 和正規表示式。

例如,雖然以下 id 在 HTML5 中有效:

<div id="9lions"> ... </div>

…它在 CSS 中無效:

4.1.3 字元和案例

在 CSS 中,識別符號 (包括選擇器中的元素名稱,類和 ID)只能包含字元[a-zA-Z0-9]和 ISO 10646 字元 U + 00A0 和更高,加上連字元( - )和下劃線( _); 它們不能以數字,兩個連字元或連字元後跟數字開頭(重點補充)

在大多數情況下,你可以在具有限制或特殊含義的上下文中轉義字元。

W3C 參考文獻