2013-03-06 18 views

回答

29

HTML5規範允許任意的屬性,只要他們與數據 - 像這樣的前綴:

<div data-myattribute=""></div> 

而這將是無效的HTML5:

<div myattrbute=""></div> 

For more information on data- attributes, have a look here.

至於「x-」屬性,我認爲你的意思是「x:」屬性和元素,這些屬性和元素是XHTML驗證特有的...

爲了擴大這一點,如果你是(出於某種原因)使用XHTML,您可以定義與命名空間,像這樣的自定義屬性(我只是總結要點這裏):

<html xmlns:x="http://sample.com/mynamespace"> 
<body> 
    <div x:whatever=""></div> 
    <x:mytag></x:mytag> 
</body> 
</html> 

哪裏xmlns中的URL實際上只是爲了防止類似元素之間的衝突。另外,可以將用於自定義元素和屬性的DTD作爲DOCTYPE聲明的一部分提供用於驗證目的。

*瀏覽器中的行爲會隨xmlns方法而變化。

總之,儘管:隨着過去三年中發佈的大多數瀏覽器,或者IE8 +,你都不用擔心這些事情。只有在非常特殊的情況下,你纔會真正關心。

+0

OP鏈接的文檔確實說'data-myattribute'和'x-myattribute'符合HTML驗證器。 – 2013-03-07 03:47:32

+1

嗯,我不確定文檔的作者使用的驗證器是什麼......但是x屬性目前[不在規範中](http://www.w3.org/html/wg/drafts/html/master/單page.html中)。 – 2013-03-07 06:18:54

+2

夠公平的,我試着找到更多關於'x-'的信息,但是你可以想象這個術語對Google來說是不可能的。它主要出現在諸如'x-moz-errormessage'和'x-webkit-speech'這樣的實驗性瀏覽器功能中。 – 2013-03-07 07:52:36

18

從HTML5規範:http://www.w3.org/html/wg/drafts/html/master/single-page.html

屬性名稱以兩個字符「X-」是爲用戶代理使用保留 ,並保證永遠不會被正式添加到 HTML語言。

另外:

對於旨在與the HTML syntax使用標記級別特徵, 擴展應限制到的形式爲「x-vendor-feature」,其中 供應商是一個短 串的新的屬性標識負責擴展的供應商,功能是該功能的名稱 。不應創建新的元素名稱。專門爲這樣的 擴展使用屬性允許來自多個供應商的擴展共存於相同的元素上,這對於元素來說是不可能的。使用「x-vendor-feature」表格允許 擴展名爲 而沒有與未來添加到規範衝突的風險。

+2

我甚至可以說「x-」前綴是正確的方式如果要驗證標記,請使用角度。這實際上是數據。 來自W3C草案: 「對於標記級別的功能...擴展應限制爲'x-vendor-feature'形式的新屬性。」 帶x前綴的Ng屬性可以很好地符合此描述。 – 2013-08-11 02:06:34

+2

+1。儘管這裏的措辭似乎是指瀏覽器供應商而不是庫/框架?無論如何,這對我來說比使用數據前綴更爲正確,因爲它比框架更具體,而不是您可能要附加的數據位(並且也遵循x-供應商草稿的前綴)。 – wbyoung 2013-10-16 01:07:53

+1

我同意wbyoung,對法律信x-是保留爲瀏覽器,而不是擴展或框架。不過,我也認爲他們應該修改法律來包含這個用法,因爲'x-ng-feature'看起來像是一個語義上正確的約定。 – misteraidan 2014-04-23 03:07:32

相關問題