应该如何编写布尔属性?

Die*_*ego 4 html dom boolean

我一直在阅读一些关于HTML,XHTML等的文章.在大多数文章中(即我的首选语法风格)说布尔属性应该没有任何值写,如下所示:

<input type="text" required>
Run Code Online (Sandbox Code Playgroud)

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

<input type="text" required="required">
Run Code Online (Sandbox Code Playgroud)

其中一些文章链接W3,其中说:

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

但在示例中显示如下:

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

<label><input type=checkbox checked name=cheese disabled>Cheese</label>
Run Code Online (Sandbox Code Playgroud)

这可以等效地写成:

<label><input type=checkbox checked=checked name=cheese disabled=disabled> Cheese</label>
Run Code Online (Sandbox Code Playgroud)

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

<label><input type='checkbox' checked name=cheese disabled="">Cheese</label>
Run Code Online (Sandbox Code Playgroud)

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

Bal*_*usC 5

没有值的属性在HTML中有效,但在XHTML中无效,因为它不允许在XML中使用.也许这就是你的困惑所在.那么,哪一个有效取决于您的文档的doctype.