可接受的值
對於身份證
Version >= 五
對 id
的價值的唯一限制是:
- 它必須在文件中是唯一的
- 它不能包含任何空格字元
- 它必須包含至少一個字元
所以值可以是所有數字,只有一位數,只是標點字元,包括特殊字元,等等。只是沒有空格。
所以這些都是有效的:
<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 的上下文。
在 id
或 class
的值中使用數字,標點符號或特殊字元可能會在其他上下文中引起麻煩,例如 CSS,JavaScript 和正規表示式。
例如,雖然以下 id
在 HTML5 中有效:
<div id="9lions"> ... </div>
…它在 CSS 中無效:
在 CSS 中,識別符號 (包括選擇器中的元素名稱,類和 ID)只能包含字元[a-zA-Z0-9]和 ISO 10646 字元 U + 00A0 和更高,加上連字元( - )和下劃線( _); 它們不能以數字,兩個連字元或連字元後跟數字開頭。 (重點補充)
在大多數情況下,你可以在具有限制或特殊含義的上下文中轉義字元。