我在页面中有一个表格,其中包含左侧单元格中的复选框和右侧单元格中的描述。 “描述”包含 h4 标题和纯文本。我想将整个描述( 内的所有内容)作为一个标签。
所以每一行看起来像这样:
<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 来测试它。如果我删除
标签,它就会开始工作,但这会使格式变得复杂。
标签是否存在阻止
正常工作的情况?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
块级元素(
h4
所属)不允许出现在内联元素中,并且会导致未定义的行为。您可以改用span
元素。Block level elements (to which
h4
belongs) are not allowed inside inline elements, and will cause undefined behaviour. You can usespan
elements instead.仅内联元素(其他标签元素除外)可能出现在标签内元素。
— http://www.w3.org/TR/ html4/interact/forms.html#h-17.9.1
无论如何,将标题放在那里是没有意义的。
Only inline elements (except other label elements) may appear inside label elements.
— http://www.w3.org/TR/html4/interact/forms.html#h-17.9.1
It doesn't make sense to put headings there anyway.
HTML 中的
元素是内联级元素,不能包含块级元素。
这可能就是导致您出现问题的原因。或者,您可以将标签放在
中:
The
<label>
element in HTML is an inline level element and cannot contain block level elements.This is probably what's causing your issues. Alternatively you can put your labels inside the
<h4>
's :在 MDN 上,他们准确解释了为什么不在内部使用标题标签标签:
Here on MDN they explain exactly why NOT to use headings inside a label tag: