【问题标题】:How should boolean attributes be written? [duplicate]布尔属性应该怎么写? [复制]
【发布时间】:2011-09-07 14:54:42
【问题描述】:

我一直在阅读一些关于 HTML、XHTML 等的文章。其中大多数(即My preferred syntax style)都说布尔属性应该写成没有任何值,如下所示:

<input type="text" required>

他们甚至说这样使用这个属性是错误的:

<input type="text" required="required">

这篇文章的一些链接W3说:

如果该属性存在,其值必须是空字符串或与属性的规范名称匹配的不区分大小写的 ASCII 值,并且没有前导或尾随空格。

但在示例中显示如下:

这是一个选中和禁用复选框的示例。这 选中和禁用属性是布尔属性。

<label><input type=checkbox checked name=cheese disabled>Cheese</label>

这可以等效地写成这样:

<label><input type=checkbox checked=checked name=cheese disabled=disabled> Cheese</label>

您还可以混合样式;以下仍然是等价的:

<label><input type='checkbox' checked name=cheese disabled="">Cheese</label>

那么,布尔属性应该怎么写呢?根据您的经验,哪些选项是跨浏览器的,哪些不是?

【问题讨论】:

  • 为什么“but in the examples show like this”中的“but”?
  • “它的值必须是空字符串或属性规范名称的不区分大小写的 ASCII 匹配值,没有前导或尾随空格”它没有说可以是无值或类似的东西
  • 没有值被解析为“空字符串”。
  • 对于所有浏览器,readonly="" 是否与 readonly 相同?
  • 嗯,这是你的问题。我希望有人真正回答它。 :) 我只是想知道为什么你认为 W3 规范是矛盾的。

标签: dom boolean html


【解决方案1】:

没有值的属性在 HTML 中有效,但在 XHTML 中无效,因为它在 XML 中是不允许的。也许这就是你的困惑的来源。因此,哪个有效取决于您的文档的文档类型。

【讨论】:

  • 在 HTML4 和 HTML5 中是否允许像 disabled(相对于 disabled="disabled")这样的无值属性?
【解决方案2】:

我总是使用checked="checked"disabled="disabled"。我真的没有添加它的理由,但它一直在我测试的所有浏览器中都有效。这包括 IE6+。

【讨论】:

  • 现在我处于同样的位置。
  • 基于其他 cmets 我会使用它们。我知道这可能不会经常发生,但如果您为使用 XHTML strict 的客户工作,您不会遇到问题。
  • checked='on' 呢?
猜你喜欢
  • 2019-08-01
  • 2011-08-29
  • 2013-01-21
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 2020-10-17
相关资源
最近更新 更多