<label>中的HTML标记

Sal*_*uts 54 html label nested

我在页面中有一个表格,其中包含左侧单元格中的复选框和右侧单元格中的说明."描述"包含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>
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,文本不像标签那样且不可点击.我正在使用Firefox 3.6进行测试.如果我删除<h4>标签它开始工作,但这使格式化变得复杂.<h*>标签是否存在阻止<label>正常工作的问题?

Tat*_*nen 53

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

  • 我认为他的意思是"而不是h4s"而不是"而不是标签" (6认同)
  • `span`中也不允许使用块级元素. (2认同)

Que*_*tin 28

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

<!ELEMENT LABEL - - (%inline;)* -(LABEL) -- form field label text -->
Run Code Online (Sandbox Code Playgroud)

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

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

  • 这不是对您或您的项目的判断,而是关于标签的语义.从语义上讲,'label'元素就像是一个控件的标题.所以它已经是一个标题.将另一个标题放在里面是多余的.另外,'H*'标题可以指向很多东西,但在标签中只允许指向一件事,这与标签已经指向的东西相同.这就像使用标题作为图像的标题.它在语义上没有意义.就外观而言,使用视觉上类似于'H*'标签的'span'标签可能是有意义的. (9认同)
  • 标有整个多节文章的单选按钮怎么样?对于一个小圈子来说,意义有多少并没有限制. (6认同)
  • 最后一位为+1.标题中的标题没有意义. (2认同)

Jam*_*xon 16

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

这可能是导致您的问题的原因.或者你可以把你的标签放在<h4>'s:

<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>
Run Code Online (Sandbox Code Playgroud)

  • 你知道,我从未想过你可以为给定的复选框设置多个标签.谢谢! (8认同)