当属性是布尔属性时,HTML 5中的含义是什么?

HEL*_*ELP 53 html5

当像hidden属性这样的属性是布尔属性时,它意味着什么?有人可以用外行的话来解释这个吗?

Alo*_*hci 98

如前所述,布尔属性是被评估为true或false的属性.

但是,来自HTML5 Spec - http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes

2.5.2布尔属性

许多属性是布尔属性.元素上存在布尔属性表示真值,缺少属性表示false值.

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

布尔属性不允许使用值"true"和"false".要表示错误值,必须完全省略该属性.

请注意,这意味着<div hidden="true">不是在HTML5允许的.

正确将是<div hidden><div hidden=""><div hidden="hidden">或不区分大小写,以及任何一个的单引号/非引号变体.

  • @croraf - 与HTML5规范的大多数规范性文本一样,第2.5.2节同样适用于HTML和XHTML语法.但是HTML语法中允许没有属性值的属性,但XHTML语法中不允许.因此,我们必须查看规范"HTML语法"的第8节.它在[8.1.2.3属性](https://www.w3.org/TR/html5/syntax.html#attributes-0)中说,指定属性的4种方法中的第一种是"空属性语法:Just属性名称.该值隐含为空字符串." 隐含值符合中间段. (6认同)

Ami*_*far 39

2.5.2布尔属性

许多属性是布尔属性.元素上存在布尔属性表示真值,缺少属性表示false值.

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

布尔属性不允许使用值"true"和"false".要表示错误值,必须完全省略该属性.

  • 布局属性pre-html5是否存在; foo ="false"和foo ="true"因此是等价的(和真实的).使用html5,它们应该不再具有任意值(从而使人们远离foo ="false"错误)但必须是foo =""或foo ="foo"(均为true). (5认同)

Ale*_*lke 5

正如其他人所说,布尔值具有三种可能的true语法:

<textarea readonly></textarea>
<textarea readonly=""></textarea>
<textarea readonly="readonly"></textarea>
Run Code Online (Sandbox Code Playgroud)

一个是false

<textarea></textarea>
Run Code Online (Sandbox Code Playgroud)

除了你有一些像这样的例外,显然:

拼写检查 [HTML5]

将此属性的值设置为 true 表示元素需要检查其拼写和语法。值 default 表示元素根据默认行为进行操作,可能基于父元素自己的拼写检查值。值 false 表示不应检查该元素。

  • 那也不例外。`spellcheck` 不是布尔属性。 (6认同)
  • 它是一个枚举属性,可以采用值“true”、“false”或“default”。 (5认同)
  • 赞成这一观察,即指定 **false** 的唯一方法是省略 Boolean 属性。 (3认同)