<label>中的HTML标签

我在页面中有一个表格,左边的单元格中有checkbox,右边的单元格中有描述。 “描述”包含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来testing它。 如果我删除<h4>标签,它开始工作,但格式化复杂。 是否有关于防止<label>正常工作的<h*>标签?

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

只有内联元素 (除了其他标签元素)可能出现在标签元素内。

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

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

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

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

这可能是你的问题。 或者,你可以把你的标签放在<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>