在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等,但是这与使用>来结束这些元素没有什么不同。

对术语的小评论。 在标记中,通常的说法是checkedchecked="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