在html5中,要将复选框设置为选中,我应该简单地使用checked(作为属性)还是checked=";勾选“;(作为属性)?

在html5中,要将复选框设置为选中,我应该简单地使用checked(作为属性)还是checked=";勾选“;(作为属性)?,html,xhtml,Html,Xhtml,目前在我们的插件中,我们将复选框设置为checkedbysetting <input type="checkbox" checked="checked" /> 这是为了保持xhtml兼容性。我更习惯将checked设置为属性 <input type="checkbox" checked /> 在html5中,什么是正确的处理方式?我们还应该关心xhtml兼容性吗? <!-- Default to unchecked --> <input ty

目前在我们的插件中,我们将复选框设置为checkedbysetting

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

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

<input type="checkbox" checked />

在html5中,什么是正确的处理方式?我们还应该关心xhtml兼容性吗?


<!-- Default to unchecked -->
<input type="checkbox">

<!-- Default to checked, XHTML -->
<input type="checkbox" checked="checked" />

<!-- Default to checked, HTML5 -->
<input type="checkbox" checked>

来源:

根据它是一个属性

选中
是HTML5中的一个布尔属性。真值由存在的属性表示,假值由不存在的属性表示。如果存在,则其值应为空或设置为属性名
checked=“checked”
。以下任一形式都是正确的:

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


无论哪种情况,它都是一个属性。在任何情况下,它都会在元素节点的DOM属性上设置一个值(相同的值,
true

在大多数情况下,使用哪种语法并不重要。但是,有几点需要注意:

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

如果您正在创建使用HTML5的XHTML序列化的文档,您关心的是HTML5中的XHTML兼容性,或者只通过使用
应用程序/XHTML+xml
mime类型提供文档,或者创建可以作为
应用程序/XHTML+xml
或作为
文本/html
(正常的html mime类型)

如果您只使用
text/html
,则不需要关心XHTML语法。但是,在页面中嵌入SVG或MathML时,可以使用XML样式的自动关闭语法。(SVG在最新的浏览器中得到广泛支持,MathML则较少。)您也可以使用
/>
来结束无效的HTML元素,如meta、link、input、img等,但这与使用
来结束这些元素没有什么不同


对术语的一个小注释。在标记中,通常的说法是
checked
checked=“checked”
是一个“属性”。一个“属性”是另一回事。

请注意,在HTML5中也不需要
/>
。这不是一个属性,它仍然是一个属性。只有在脚本中或其他任何调用属性的地方设置属性时,您才能设置该属性。但在HTML和XML标记中,它被称为属性。该语法是从SGML中保留下来的吗XHTML(与XML相反)checked=“checked”语法也包含在XML中。HTML5不是基于SGML或XML,因此它可以以更自然的方式定义自己的语法:“布尔”属性只是一个名称(无需解释为名称=值语法的简化形式)@DanDascalescu当使用jQuery设置属性时,您必须调用.prop('checked','checked'),因为prop('checked')显然只检索复选框的状态,attr将不起作用。[属性与属性:]这是设计(失败)原因的最佳示例之一按委员会排序可能是件坏事。值的对/错非常直观,但我想W3C认为这还不够混乱。@Gamadril谢谢!我已经在我的答案中更新了URL。以后,你可以自己编辑这样的内容。协作是这个网站上答案的关键。