2013-03-31 50 views

回答

4

是的。這是有效的。

任何布爾型屬性都不需要附加值。簡單地存在意味着「真實」。

需要有一個值來自XML/XHTML,其中這種語法是不合法的,雖然即使在它們中,儘管值取決於您遵守的規範(儘管當前的whatwg規範確實說truefalse不是有效值)。

WHATWG的當前HTML標準這樣說boolean attributes

一些屬性是布爾屬性。元素上布爾屬性的存在表示真值,缺少屬性表示假值。

W3 HTML 5本質上說,該值必須是屬性名稱本身的小寫的ASCII值:

如果屬性存在,它的值必須是空字符串或值這是屬性規範名稱的ASCII區分大小寫匹配,沒有前導或尾隨空白。

這回蕩在HTML 4.01 spec以及:

布爾屬性可以合法地採取單個值:該屬性本身的名稱(例如,選擇=「選擇」)。

(感謝Jukka K. Korpela提供的最後兩個鏈接)。

+0

所有HTML規格和草稿工作,checked'的'值不能是「什麼都沒有。」與此相反,設定的價值非常有限。瀏覽器似乎接受任何價值,但在規格中這不是必需的。 –

+0

@ JukkaK.Korpela - 你能指點我說的地方嗎?我看到的唯一參考是'true'和'false'是不允許的。 – Oded

+0

重新HTML5 RC:http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes說:「如果該屬性存在,它的值必須是空字符串或ASCII值不區分大小寫匹配屬性的規範名稱,不帶前導或尾隨空格。「 –

2

兩者都在HTML 4.01規範下有效,並且在文檔使用HTML媒體類型(text/html)提供服務時,它們都可以在所有瀏覽器中使用,這正是服務器通常執行的操作。一些非常早期的瀏覽器只接受較短的格式,但這是非常古老的歷史記錄

當使用XML媒體類型(例如爲XHTML設計的類型)時,兩者都使該文檔無效,甚至沒有格式良好,因此瀏覽器根本不顯示文檔,只是出現錯誤消息。在XHTML中,元素必須是<input checked="checked" />

HTML5草案(和WHATWG「Living HTML」)不會改變這麼多。它調用checked「布爾屬性」屬性,這是誤導性的(值truefalse根本不被接受),但語法規則與HTML 4.01相同,但checked=""也是允許的,並且此屬性僅爲當type屬性存在且具有值radiocheckbox(這一直是該想法,但HTML5建議將其作爲將通過標記驗證程序檢查的正式規則)時允許。

W3Schools的是非常不可靠的,看到http://w3fools.com

相關問題