应该如何编写布尔属性?

时间:2011-09-07 14:54:43

标签: dom boolean html

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

<input type="text" required>

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

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

部分文章链接W3,其中包含:

  

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

但在示例中显示如下:

  

以下是选中和禁用的复选框示例。该   checked和disabled属性是布尔属性。

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

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

2 个答案:

答案 0 :(得分:5)

没有值的属性在HTML中有效,但在XHTML中无效,因为XML中不允许这样做。也许这就是你的困惑所在。因此,哪一个有效取决于您的文档的doctype。

答案 1 :(得分:2)

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