目前在我们的插件中,我们将复选框设置为通过设置检查
<input type="checkbox" checked="checked" />
这是为了保持 xhtml 兼容性。我更习惯将检查设置为属性
<input type="checkbox" checked />
在html5中进行的正确方法是什么?我们还应该关心xhtml兼容性吗?
无论哪种情况,它都是一个属性。true
无论哪种情况,它都会在元素节点的 DOM 属性上设置一个值(相同的值, )。
对于大多数目的,您使用哪种语法并不重要。但是,有几点需要注意:
checked="checked"
.[checked=checked]
),但这在实践中并不重要:[checked]
在任何一种情况下都匹配选中的复选框。checked="checked"
是 SGML 的保留,只是为了兼容性而包含在内,因此它可能会使您的代码看起来过时(这很少重要)。<!-- 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>
https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#boolean-attributes
您关心 HTML5 中的 XHTML 兼容性,如果您正在创建使用 HTML5 的 XHTML 序列化的文档,或者仅通过提供具有application/xhtml+xml
mime 类型的文档,或者创建可以作为application/xhtml+xml
或作为text/html
('普通' html mime 类型)。
如果您只使用text/html
,那么您不需要关心 XHTML 语法。但是,在您的页面中嵌入 SVG 或 MathML 时,您可以使用 XML 样式的自关闭语法。(SVG 在最新的浏览器中得到广泛支持,MathML 则不那么支持。)您也可以使用/>
来结束void HTML 元素,例如 meta、link、input、img 等,但这与使用>
结束这些元素没有区别。
对术语的小评论。在标记中,通常的说法是checked
orchecked="checked"
是一个“属性”。“财产”是另一回事。