在html5中将复选框设置为选中,我应该只使用checked(作为属性)还是checked =“checked”(作为属性)?

时间:2012-09-08 13:49:21

标签: html html5 xhtml

目前在我们的插件中,我们通过设置

设置复选框
<input type="checkbox" checked="checked" />

这是为了保持xhtml兼容性。我以前习惯将设置为属性

<input type="checkbox" checked />

在html5中进行的正确方法是什么?我们还应该关心xhtml兼容性吗?

5 个答案:

答案 0 :(得分:39)

在任何一种情况下都是属性。并且它在任何一种情况下都在元素节点的DOM属性上设置一个值(相同的值true)。

对于大多数用途,使用哪种语法无关紧要。但是,有一些要点需要注意:

  • 如果您在XML序列化(“XHTML5”)中使用HTML5,则必须使用checked="checked"
  • 在样式中,使用属性选择器时语法不完全相同(较短的形式与[checked=checked]不匹配),但这在实践中无关紧要:[checked]匹配任一情况下的选中复选框。
  • 笨拙的语法checked="checked"是SGML的延续,仅用于兼容性,因此它可能会使您的代码看起来过时(很少重要)。

答案 1 :(得分:25)

<!-- 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/

答案 2 :(得分:11)

Checked是HTML 5中的布尔属性。真实值由存在的属性指示,虚假值由其缺失指示。如果存在,则其值应为空或设置为属性名称checked="checked"。这两种形式都是正确的:

<input type="checkbox" checked="checked" />
<input type="checkbox" checked>

https://www.w3.org/TR/html5/infrastructure.html#sec-boolean-attributes

答案 3 :(得分:5)

如果要创建使用HTML5的XHTML序列化的文档,或者通过使用application/xhtml+xml mime类型提供文档,或者创建可以提供服务的多语言文档,那么您关心HTML5中的XHTML兼容性要么是application/xhtml+xml要么是text/html('普通'html mime-type)。

如果您只使用text/html,那么您不需要关心XHTML语法。但是,在页面中嵌入SVG或MathML时,可能使用XML样式的自动关闭语法。 (SVG在最新的浏览器中得到广泛支持,MathML不太受欢迎。)您也可以使用/>来结束 void HTML元素,例如元,链接,输入,img等,但这有与使用>结束这些元素没有什么不同。

对术语的轻微评论。在标记中,按照通常的说法,checkedchecked="checked"是“属性”。 “财产”是另一回事。

答案 4 :(得分:0)