2016-08-11 45 views
1

有沒有理由不這樣做?有沒有理由不使用自定義「評論」屬性?

<div comment="start display area"> 
    ... 
</div> 

我喜歡添加筆記,這似乎是一個理想的方式來做到這一點。

我知道我能做到這一點還有:

<!--Start display area--> 
<div"> 
    ... 
</div> 

第一語法似乎只是清潔我。我碰到的問題是<!--有時候,我想爲了調試目的而將HTML區域註釋掉。當那裏有評論字符串時,這不起作用。

我發現它這個更早的討論:https://www.w3.org/XML/2000/04schema-hacking/comment-test.html

+1

從我的理解,它只是W3C不喜歡它。我閱讀了多篇文章,認爲完美的W3C有效的html對於搜索引擎優化來說並不比搜索引擎有一些錯誤的頁面更快或更好,而未定義的屬性不是'data- *'(就像你的'comment'屬性)那樣對他們來說是一個錯誤。你仍然可以使用像'document.querySelectorAll(「#測試」)[0] .getAttribute(「意見」);',它會工作得很好,我還沒有讀什麼,上面寫着由屬性傷害網頁頁。除非你真的很肛門約100希望W3C%有效的HTML我不會被它過於強調 –

+1

[雖然有優惠,谷歌並不真正關心,如果你的網頁是有效的HTML和有效的CSS。(HTTP:/ /www.hobo-web.co.uk/official-google-prefers-valid-html-css/)。也這將是非常虛僞的,如果谷歌懲罰其沒有100%W3C的有效的站點時,[他們本身是無效的(https://validator.w3.org/nu/?doc=http%3A%2F%2Fwww .google.com%2F) –

+0

喜歡你的評論。 –

回答

5

您應該使用data attributes。數據屬性的設計正是爲你打算做什麼:

HTML5在設計時就考慮了擴展的,應該是與特定元素相關聯 但不必有任何定義 意義的數據。數據 - *屬性使得我們能夠存儲上沒有其他黑客如 非標準屬性,對DOM或setUserData來額外的屬性 標準,語義HTML元素的額外信息。

你格會是什麼樣子:

<div data-comment="start display area"> 
0

要添加自定義屬性,你應該使用data-*

<div data-comment="start display area"> 
    ... 
</div> 

來源:W3C

另一種選擇是使用DTD attributes

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 
[ 
    <!ATTLIST tag comment CDATA #IMPLIED> 
]> 

至於缺點,我能想到的唯一的事情就是別人在看你的代碼可能不爲可讀,因爲大多數可能習慣標準格式的註釋。