目前在我們的插件設置在html5中設置複選框爲選中狀態,我應該簡單地使用checked(作爲屬性)還是checked =「checked」(作爲屬性)?
<input type="checkbox" checked="checked" />
這是爲了保持兼容性XHTML作爲託運我們設定的複選框。我更習慣設置檢查作爲屬性
<input type="checkbox" checked />
什麼是HTML5進行正確的方法是什麼?我們應該還在乎XHTML兼容性?
目前在我們的插件設置在html5中設置複選框爲選中狀態,我應該簡單地使用checked(作爲屬性)還是checked =「checked」(作爲屬性)?
<input type="checkbox" checked="checked" />
這是爲了保持兼容性XHTML作爲託運我們設定的複選框。我更習慣設置檢查作爲屬性
<input type="checkbox" checked />
什麼是HTML5進行正確的方法是什麼?我們應該還在乎XHTML兼容性?
正是在這兩種情況下的屬性。在任何一種情況下,它都會在元素節點的DOM屬性上設置一個值(相同的值,true
)。
對於大多數用途,使用哪種語法並不重要。然而,也有一些需要注意的事項:
checked="checked"
。[checked=checked]
),但在實踐中這並不重要:在任何情況下,[checked]
都匹配複選框。checked="checked"
是一個來自SGML的保留,並且僅用於兼容性,因此它可能會使您的代碼看起來過時(這很少有關係)。這個語法是否從SGML延伸到XHTML(而不是XML)? – BoltClock
'checked =「checked」'語法也被帶入了XML。 HTML5不是基於SGML或XML,因此它可以更自然地定義自己的語法:「布爾」屬性只是一個名稱(不需要將其解釋爲名稱=值語法的簡化形式)。 –
@DanDascalescu當使用jQuery來設置屬性時,你必須調用.prop('checked','checked'),因爲prop('checked')顯然只會檢索複選框的狀態,attr將不起作用。 [屬性與屬性:http://api.jquery.com/prop/] –
<!-- Default to unchecked -->
<input type="checkbox">
<!-- Default to checked, XHTML -->
<input type="checkbox" checked="checked" />
<!-- Default to checked, HTML5 -->
<input type="checkbox" checked>
Checked
在HTML 5.一個布爾屬性的真值由屬性所指示存在,和僞值被指示由於缺席。如果它存在,它的值應該是空的或設置爲屬性名稱checked="checked"
。下面這些形式都是正確的:
<input type="checkbox" checked="checked" />
<input type="checkbox" checked>
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes
您關心HTML5 XHTML兼容,如果要創建使用HTML5的XHTML序列化的文件,要麼完全由與application/xhtml+xml
MIME類型服務的文檔,或創建一個既可以提供一個多語種的文件如application/xhtml+xml
或text/html
('normal'html mime-type)。
如果您只使用text/html
,那麼您不需要關心XHTML語法。但是,在您的頁面中嵌入SVG或MathML時,可能會使用XML樣式的自閉合語法。 (SVG在最新的瀏覽器中得到了廣泛的支持,MathML的支持更少)。您也可以使用/>
來結束void HTML元素,如元,鏈接,輸入,img等,但這與使用>
來終止這些效果不同元素。
對術語的小評論。在標記中,通常的說法是checked
或checked="checked"
是「屬性」。 「財產」是別的。
請注意,您在HTML5中也不需要'/>'。 –
這不是一個屬性,這仍然是一個屬性。如果您在腳本中或其他任何將其稱爲屬性的位置執行此操作,則只會設置該屬性。但在HTML和XML標記中,它被稱爲屬性。 – BoltClock