在html5中设置checkbox为选中状态,我应该简单地使用checked(作为属性)还是checked =“checked”(作为属性)?
目前在我们的插件中,我们将checkbox设置为通过设置进行检查
<input type="checkbox" checked="checked" />
这是为了保持xhtml的兼容性。 我更习惯把设置作为一个属性
<input type="checkbox" checked />
什么是在html5中正确的方法?我们是否仍然关心xhtml的兼容性?
这两种情况都是属性。 在任何一种情况下,它都会在元素节点的DOM属性上设置一个值(相同的值, true
)。
对于大多数用途,使用哪种语法并不重要。 但是,有一些要注意的地方:
- 如果您在XML序列化(“XHTML5”)中使用HTML5,则必须使用
checked="checked"
。 - 在样式中,使用属性select器时,语法并不完全相同(较短的forms不匹配
[checked=checked]
),但在实践中无关紧要:无论在哪种情况下,[checked]
匹配checkbox。 - 这个笨拙的语法
checked="checked"
是SGML的保留,只是为了兼容,所以它可能会让你的代码看起来老式(很less有问题)。
<!-- Default to unchecked --> <input type="checkbox"> <!-- Default to checked, XHTML --> <input type="checkbox" checked="checked" /> <!-- Default to checked, HTML5 --> <input type="checkbox" checked>
资料来源: http : //css-tricks.com/indeterminate-checkboxes/
如果您正在创build使用HTML5的XHTML序列化的文档(您可以专门通过以application/xhtml+xml
mimetypes提供文档或创build可作为application/xhtml+xml
提供的多边形文档)来关心HTML5中的XHTML兼容性application/xhtml+xml
或作为text/html
('正常'html mimetypes)。
如果你只使用text/html
,那么你不需要关心XHTML语法。 但是,在页面中embeddedSVG或MathML时, 可以使用XML风格的自闭句法。 (SVG在最新的浏览器中得到了广泛的支持,而MathML则不如此)。您也可以使用/>
来结束无效的 HTML元素,比如meta,link,input,img等,但是这与使用>
来结束这些元素没有什么不同。
对术语的小评论。 在标记中,通常的说法是checked
或checked="checked"
是一个“属性”。 “财产”是另一回事。
Checked
是HTML 5中的一个布尔属性。一个真实值由该属性表示,而一个假值表示不存在。 如果它存在,它的值应该是空的或设置为属性名称checked="checked"
。 这两种forms都是正确的:
<input type="checkbox" checked="checked" /> <input type="checkbox" checked>
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes