HTML - 为什么布尔属性没有布尔值?

时间:2011-08-17 08:05:01

标签: html

我注意到一些元素具有布尔值的属性。我想知道为什么价值观不是真或假?还是1和0?他们为什么会这样,有什么理由吗?

<option selected="selected">Ham Burger</option>

<input type="button" disabled="disabled" />

提前致谢!

7 个答案:

答案 0 :(得分:17)

在SGML中,可以最小化属性,使其值仅对于名称和值都很短,在这种情况下属性的唯一可能值显然是属性自己的名称。 HTML将此用于布尔属性,其中属性的存在与否是有意义的,并且其值是无关紧要的。但是在XML中,最小化的属性是不允许的,所以当XHTML变得流行时,我们最终会遇到selected="selected"的尴尬。如果您正在编写HTML而不是XHTML,那么您只需编写selected

答案 1 :(得分:8)

exact definition是:

  

某些属性扮演布尔变量的角色(例如,所选属性)   OPTION元素的属性)。它们在开始标记中的外观   元素的含义意味着属性的值为“true”。其   缺席意味着值为“false”。

此外:

  

布尔属性可能合法地采用单个值:属性本身的名称[...]在HTML中,布尔属性可能以最小化形式出现

基本上,这意味着布尔属性只有两种可能的状态,true和false,但没有未设置状态。

答案 2 :(得分:3)

对于disabled属性,我认为是否存在禁用该元素的属性,无论其值如何。

它猜测其中一个原因可能是允许更多的值,而不仅仅是是/否。例如,您可以使用visibility = visible / hidden / collapsed

而不是visible = true / false

答案 3 :(得分:1)

HTML标准(不是XHTML)是简单地选择而不是选择=“选择”

见这里:http://www.w3.org/TR/html4/interact/forms.html#adef-selected

当创建XHTML以允许在HTML中更好地与XML集成时(参见http://www.w3.org/MarkUp/2004/xhtml-faq#need),更正了不符合HTML类似XML结构要求的部分。因此,像selected这样的措辞被转换为selected =“selected”以符合标准

答案 4 :(得分:0)

可读性,许多HTML不是由具有计算机科学背景的人编写的,所以“布尔”的概念在这些术语中对他们来说是陌生的。此外,它通过提供关于给定语句功能的强化线索,提高了计算机科学和其他技术用户的可读性。

答案 5 :(得分:0)

正如vc74所说,选择或禁用它的价值并不重要。

<option selected="selected">Ham Burger</option>

将与

相同

<option selected="sjkhdaskj">Ham Burger</option>

答案 6 :(得分:0)

我认为这只是为了方便用户在大多数人类可读的形式中指定属性值,如果他/她不知道什么是真/假

<html>
<body>
<select>
<option>1</option>
<option selected="blah">2</option>
<option >3</option>
</select>
</body>

您在上面的代码中看到我没有使用selected=selected,我使用了我想要的仍然选择了选项值,或者您只需使用<option selected>2<option>