内部HTML标记<;标签>;

内部HTML标记<;标签>;,html,nested,label,Html,Nested,Label,我在页面中有一个表格,该表格由左侧单元格中的复选框和右侧单元格中的描述组成。“说明”包含h4标题和纯文本。我想把整个描述(里面的所有内容)作为一个标签 所以每一行看起来像这样: <tr><td><input type="checkbox" name="entiries[]" value="i1" id="i1"></td> <td><label for="i1"> <h4>Some stuff</h4>

我在页面中有一个表格,该表格由左侧单元格中的复选框和右侧单元格中的描述组成。“说明”包含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>

还有一些东西。。
还有一些东西。。
这不起作用,但是,文本不像标签,不能单击。我正在使用Firefox3.6来测试它。如果我删除
标记,它就会开始工作,但这会使格式化变得复杂。
标记是否有妨碍
正常工作的地方?

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

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

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

-

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

HTML中的
元素是内联级元素,不能包含块级元素

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

<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>

<
还有一些东西。。
还有一些东西。。

span
中也不允许使用块级元素。这确实解决了问题。将span的样式设置为display:block可以使它看起来与标题几乎相同(因此该span的CSS条目与h4+display:block的条目相同),标签功能也可以工作。我想他是说“代替h4s”而不是“代替标签”是的,我只是将h4改为span,并将span的样式改为模仿h4。好东西。你知道吗,我从来没有想到一个复选框可以有多个标签。谢谢这不是对您或您的项目的判断,而是关于标记的语义。从语义上讲,“label”元素类似于一个且只有一个控件的标题。所以它已经是一个标题了。把另一个标题放进去是多余的。另外,“H*”标题可以指向许多东西,但在标签中,只能指向一个东西,即标签已经指向的同一个东西。这就像使用标题作为图像的标题一样。它在语义上没有意义。不过,从外观来看,使用一个在视觉上类似于“H*”标记的“span”标记可能是有意义的。用一个单选按钮标记整个多节文章如何?这一个小圆圈所能表达的意义是无限的。