首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么HTML中的input标签是<input/>而不是<input></input>

为什么HTML中的input标签是<input/>而不是<input></input>
EN

Stack Overflow用户
提问于 2014-10-16 10:47:04
回答 4查看 500关注 0票数 1

为什么输入标记在HTML中

代码语言:javascript
复制
<input value="something"/>

而不是

代码语言:javascript
复制
<input>something</input>

或者为什么p标记不是

代码语言:javascript
复制
<p value="something"/>

而不是

代码语言:javascript
复制
<p>something</p>
EN

回答 4

Stack Overflow用户

发布于 2014-10-16 10:50:19

它就是这样设计的。出于某种原因,决定使用属性来存储值。我认为当涉及到尾随空格和前导空格时,这也是优点--在属性中更容易。使用标签的标准是忽略空白,这在您想要捕获所有文本的输入字段中是不可取的。标签的另一个问题是多行的开始和结束标签。

票数 1
EN

Stack Overflow用户

发布于 2014-10-16 11:02:24

这两个标签试图用它们的“值”做根本不同的事情。

p标签是分隔文本块的一种方式。它和其他“结束标记”(即具有</tag>的标记,如p)告诉解析器此文本有意义。考虑到这一点,这种格式是有意义的:解析器看到的是<p>标记,并且知道“在我看到</p>标记之前,从这里开始的所有内容在语义上都是一个段落;采取适当的行动。”

然而,input标记并不试图将含义应用于任何文本;标签就是含义。从解析器的角度来看,看到表单标记会告诉它“用<input />元素替换它”。这是自关闭标签的基本行为:它们不会给文本添加意义,而是向整个文档添加(某种形式的)内容。因此,为input设置结束标记是没有意义的;input不会为任何文本提供额外的含义,相反,文本表示有关input元素的一些有意义的内容。因此,它是一个属性。

票数 0
EN

Stack Overflow用户

发布于 2014-10-16 11:12:57

使用<input/>标记而不是写它的开始/结束标记是因为该标记的实际作用。输入标记不应该占据任何子元素,所以你需要写更多吗?与仍然可以包含更多子元素的<div> <span><table>标签不同,<input>标签是一个独立的元素,因为任何原因都不需要它。在其他方面,浏览器也支持这样编写:<input type="text"></input>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26395426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档