我在页面中有一个表格,其中包含左侧单元格中的复选框和右侧单元格中的说明。 “描述”包含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>
正常工作?
答案 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>