jsfiddle のテーブル (これが実際の問題のようです) には、セル数が異なる行が含まれています。
<tr>
<td><input type="text" name="street" id="street" value="" size="20" /></td>
</tr>
<tr>
<td>City:</td>
<td>State:</td>
<td>Zip:</td>
</tr>
これにより、実際にはかなり予測できないレンダリングが発生します。
すべての行が同じ数のスロット (この場合は 3) を持つようにすることで、構造をより適切にすることができます。これにはcolspan
、セルの属性 (上記の最初の行でを使用) を使用します<td colspan="3">
。これには、行に対して人為的な決定が必要になります。 2 つのセルを含む: そのうちの 1 つは 2 つの列にまたがる必要があります。
これはやや不自然で (列内のセルは実際には相互に関連しておらず、同じ列に配置されているだけです)、アクセシビリティの問題を意味します。フォームのより優れた表形式の構造は、入力コントロール (1 つの要素などの 1 つのフィールド) ごとに 1 つの行があり、input
1 つの列にラベルがあり、別の列にコントロール自体があるため、次のようなものから始めます。
<table>
<tr><td><label for="org">Organization name:</label></td>
<td><input type="text" name="org" id="org" value="" size="20" /></td>
</tr>