<label> </label>中的HTML标记

时间:2010-12-16 14:45:20

标签: html nested label

我在页面中有一个表格,其中包含左侧单元格中的复选框和右侧单元格中的说明。 “描述”包含h4标题和纯文本。我想让整个描述(<td></td>内的所有内容)成为标签。

所以每一行都是这样的:

<tr><td><input type="checkbox" name="entiries[]" value="i1" id="i1"></td>
<td><label for="i1">
<h4>Some stuff</h4>more stuff..
<h4>Some stuff</h4>more stuff..
</label>
</td></tr>

然而,这不起作用,文本不像标签那样且不可点击。我正在使用Firefox 3.6进行测试。如果我删除了<h4>标签,它就会开始工作,但这会使格式化变得复杂。是否有<h*>个标记阻止<label>正常工作?

3 个答案:

答案 0 :(得分:50)

内联元素中不允许使用块级元素(h4所属的),并且会导致未定义的行为。您可以改为使用span元素。

答案 1 :(得分:28)

标签元素中只能出现inline elements(其他标签元素除外)。

<!ELEMENT LABEL - - (%inline;)* -(LABEL) -- form field label text -->

- http://www.w3.org/TR/html4/interact/forms.html#h-17.9.1

无论如何将标题放在那里是没有意义的。

答案 2 :(得分:15)

HTML中的<label>元素是内联级元素,不能包含块级元素。

这可能是导致您的问题的原因。或者,您可以将标签放在<h4>中:

<tr><td><input type="checkbox" name="entiries[]" value="i1" id="i1"></td>
<td><
<h4><label for="i1">Some stuff</label></h4>more stuff..
<h4><label for="i1">Some stuff</label></h4>more stuff..
</label>
</td></tr>