我可以在标签内放一个跨度和一个输入吗?

时间:2015-07-29 09:11:43

标签: html forms

我正在构建一个包含动态字段数的大型表单,我不想这样做:

<label for="foo">Text</label><input id="foo">

通常我会这样做,但我不想在foo的1-50中摸索,也不想在用户添加新行时以编程方式递增更多内容。我read而不是使用for属性,只要标签中只有一个控件,通过在控件周围包装标签就可以隐式地将标签与控件相关联。即:

<label>Text<input></label>

但是,我还想做一些比这更具风格的造型。

我可以这样做吗?

<label><span>Text</span><input></label>

或者是无效的标记?

2 个答案:

答案 0 :(得分:0)

扩大对忧郁症的评论。 MDN label documentation表示标签元素可以包含“ phrasing content”,但不包括其他标签。这包括跨度。

答案 1 :(得分:-1)

文档类型不允许元素&#34; LABEL&#34;这里;缺少&#34; P&#34;,&#34; H1&#34;,&#34; H2&#34;,&#34; H3&#34;,&#34; H4&#34;,&# 34; H5&#34;,&#34; H6&#34;,&#34; PRE&#34;,&#34; DIV&#34;,&#34; ADDRESS&#34;开始标记。

上述元素不允许出现在您放置的上下文中;其他提到的元素是唯一允许存在的元素,并且可以包含所提到的元素。这可能意味着您需要一个包含元素,或者您可能忘记关闭前一个元素。

此消息的一个可能原因是您尝试放置块级元素(例如&#34;&lt; p&gt;&#34;或&#34;&lt; table&gt;&#34 ;)内联元素(例如&#34;&lt; a&gt;&#34;,&#34;&lt; span&gt;&#34;或&#34;&lt; font&gt;&#34 ;)