【问题标题】:Why select is not a input type in HTML?为什么 select 不是 HTML 中的输入类型?
【发布时间】:2016-07-10 04:34:48
【问题描述】:

为什么例如<select><textarea> 是独立标签而不是<input> 的属性?

【问题讨论】:

  • 因为历史。 en.wikipedia.org/wiki/HTML5。当 HTML 还是婴儿时,它有单独的标签,然后它们保持这种状态,因为太多的变化会造成伤害。如果您认为应该改变,请加入编写 HTML6 规范的团队?
  • @TimOgilvy 这可能是一个答案,并避免关闭这个问题(没有你的评论增加一点价值)。
  • @nha 谢谢。我试了一下。
  • 我同意这个答案,js 也有很多与这些第一个版本相关的不一致之处,这些不一致之处永远无法修补,以避免破坏性更改并破坏所有全球应用程序区域的稳定性。这是为什么你有像1-'1'=>01+'1'=>11 这样奇怪的东西的一个理由!

标签: html tags attributes


【解决方案1】:

因此,为了提供一个希望更完整的答案,并结合@BackMaba07 答案中的一些信息:

HTML (wikipedia article) 是一个不断发展的标准,它最初基于 SGML。随着时间的推移,它得到了发展和扩展。 Web 表单的标签在HTML 2.0 standard 中明确指定,其中<INPUT><SELECT><TEXTAREA> 分别定义,可能是出于BlackMamba07 描述的原因:

<select> 是一个嵌套的 HTML 元素,而不是。例如<select> 元素包含嵌套在其中的元素。

<textarea> 而言,在表单的初始设计中,多行文本字段由 TYPE=TEXT 的 Input 元素支持。不幸的是,这会导致具有长文本值的字段出现问题。 SGML 的默认值(参考数量集)将属性文字的长度限制为仅 240 个字符。 HTML 2.0 SGML 声明将限制增加到 1024 个字符。)

HTML 的后续版本涉及各方之间的大量争论、协商和讨论,包括WHATWGW3C

尽管如果您想使用脚本或 css 更改表单中的所有元素,可能会出现非输入的表单元素很烦人的情况,但它可能从来都不是一个足够大的问题来解决讨论表。

没有绝对的,只有一群老男人(我很高兴地说,越来越多的女性和年轻人)就标准争论不休。

即使在 SO 中,关于适用什么规范也存在相当大的争论。例如:HTML5: W3C vs WHATWG. Which gives the most authoritative spec?

令人兴奋的是,如果您足够关心,您可以加入对话,并发表自己的看法。您将面对一些经验丰富的活动家。玩得开心!

【讨论】:

    【解决方案2】:

    <select> 是一个嵌套的 HTML 元素,而 <input> 不是。例如<select> 元素包含嵌套在其中的<option> 元素。

    就文本区域而言,在表单的初始设计中,TYPE=TEXT 的 Input 元素支持多行文本字段。不幸的是,这会导致具有长文本值的字段出现问题。 SGML 的默认值(参考数量集)将属性文字的长度限制为仅 240 个字符。 HTML 2.0 SGML 声明将限制增加到 1024 个字符。)

    我想这就是我们为这些元素设置单独标签的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      • 1970-01-01
      • 1970-01-01
      • 2015-10-20
      • 2013-07-06
      • 2015-11-05
      • 1970-01-01
      相关资源
      最近更新 更多