起源是SGML中的空元素概念,其思想是某些元素充当将从外部源或环境插入的内容的占位符。这就是为什么img和input例如在HTML中被声明为空,或更确切地说,在具有EMPTY声明的内容的情况下被声明为空(即,可能没有内容,与随便具有空内容的元素相反)。有关详细说明,请参见我的页面SGML,HTML,XML和XHTML中的Empty元素。
这意味着该元素的开始标签也充当结束标签。有望从文档类型定义(DTD)知道处理SGML或HMTL文档的软件,哪些标签具有此属性。实际上,此类信息是内置在Web浏览器中的。使用类似这样的结束标记是无效的,但浏览器只会跳过无法识别或伪造的结束标记。
在XML中,因此在XHTML中,情况有所不同,因为XML是SGML的简化版本,旨在简单地进行处理。处理XML的软件必须能够在没有任何DTD的情况下完成所有解析,因此XML要求所有元素都使用结束标记,尽管您可以(并且出于兼容性的考虑,多数情况下也应使用)的特殊语法(例如的简写)。但是XHTML仍然不允许标记之间包含任何内容。
因此,您不能在元素本身内部为输入元素指定标签,因为它不能包含任何内容。您可以使用title,value或(在HTML5)placeholder的属性与它关联的文本,在不同的意义,但作为一个标签,它需要在不同的元素有正常的可见内容。如其他答案中所述,建议将其放在label元素中并定义与id和for属性的关联。