Dom 布尔属性应该如何编写?

Dom 布尔属性应该如何编写?,dom,boolean,html,Dom,Boolean,Html,我一直在阅读一些关于HTML、XHTML等的文章。其中大多数(即)都说布尔属性应该在没有任何值的情况下编写,如下所示: <input type="text" required> <input type="text" required="required"> 他们甚至说这样使用这些属性是错误的: <input type="text" required> <input type="text" required="required"> 这

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

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

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

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

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


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

但在示例中显示如下:

<input type="text" required>
<input type="text" required="required">
下面是选中并禁用复选框的示例。这个 选中和禁用的属性是布尔属性

奶酪
这可以等效地写为:

奶酪
你也可以混合风格;以下仍然是等效的:

奶酪

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

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

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

为什么“但是”中的“但是”在示例中显示为这样?“其值必须是空字符串,或者是一个与属性的规范名称不区分大小写的ASCII匹配值,并且没有前导或尾随空格”它并没有说可以是无值的或类似的东西,没有值可以解析为“空字符串”。对于所有浏览器,
readonly=”“
是否与
readonly
相同?这就是你的问题。我希望有人真的能回答我只是想知道为什么你认为W3规范是矛盾的。现在我处于同样的位置。根据其他的评论,我会使用它们。我知道这种情况可能不会经常发生,但是如果你为一个使用XHTML的客户工作,你不会遇到问题。那么
checked='on'
呢?像
disabled
(相对于
disabled=“disabled”
)这样的无值属性在HTML4和HTML5中都是允许的吗?