左側のセルのチェックボックスと右側のセルの説明で構成されるページに表があります。 「説明」には、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>
が正常に機能しない原因がありますか?
ブロックレベル要素(_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>
要素はインラインレベルの要素であり、ブロックレベルの要素を含めることはできません。
これがおそらく問題の原因です。または、ラベルを<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>