2011-09-10 8 views
0

私は時々、人々がフォームをフォーマットするためにもうテーブルを使用しないと聞いていますが、これは残っている傾向になり始めていますか?なぜ、そしてなぜですか?テーブルを使用してフォームを作成するのは愚かな/古いと見なされますか?

+1

可能重複[HTMLでレイアウトにテーブルを使用しないのはなぜ?](http://stackoverflow.com/questions/83073/why-not-use-tables-for-layout-in-html) – itsmatt

+0

@itsmatt:私はそのままの状態でいいと思う。それはどちらかの方法で使用できるので、より具体的で、良い質問です。 – Nightfirecat

+0

Facebookの「プロフィールを編集」フォームはテーブルです... –

答えて

8

意味的に言えば、テーブルには表形式のデータが含まれている必要があります。この意味で、テーブルタグの使用には何も問題ありません。

どこが間違っているのは、レイアウトのためにテーブルを使用し始めたことです。レイアウトは簡単です。ページレイアウトは表形式のデータではないため、意味的に表のタグ内に配置すべきではありません。

あなたはそれを行うことができますし、それは動作しますが、あなたはまたカスタード風邪を食べることができ、それは動作します。アイデアはそれを実行するよりも適切に行うことに関するものです。理想的な世界では


、あなたは<fieldset>秒、<label> sおよびその他のフォーム関連のタグを使用して、フォームを生成することができます。

<label for="usernameID">Username:</label> <input type="text" name="username" id="usernameID" /> 

ラベルと入力のスタイルを設定することができます。これにより、HTMLに羽毛がなくなります。

実際には、<div><span>にラッピングすることになるでしょうが、それを賢明に保ち、それらの上を通過しないようにしてください。 「実際にこのフォームに非形式のタグがたくさんある」と思うなら、おそらくもっと良い方法があります(あなたのやり方はうまくいくかもしれませんが)。

+0

それでは、フォームを作成するときに、テーブルの同じ外観を得るために使用するものは何ですか?私はそれが私の最も重要な関心事だと思います – adit

+0

面白い、私はこれで答えを編集中途半端だったし、 "ナー、それを残す"と思った。 2s、編集に戻る – Joe

0

以外の表を使用すると、表形式のデータは一般的に不適切です。これは主に、表が通常はスプレッドシートに入れられない意味に意味を持たないためです。

テーブルを使用してフォームを書式設定するのは簡単です(特に使い慣れている場合)。ただし、データをよりよく記述するその他のものを使用する方がよいでしょう。

3

いくつかの理由:

  • マークアップは、セマンティックにする必要があります。つまり、マークアップ内の要素は、コンテンツについて意味のあるものを示す必要があります。段落は<p>タグ、<h1><h6>などの見出しになるはずです。対照的に、<td>タグは意味がありません。たとえば、<label>です。一方、要素の周期表の表現を作成する場合は、<td>タグが非常に適しています。

    HTML5はこの傾向をさらに強めています。マークアップとコンテンツの間の接続をさらに緊密にするために、<nav><section>のような新しい要素も追加されました。

  • 表は、スタイルと維持に苦労します。 <input><label>の内部にあり、内部にの<tr>の内部に<table><tbody>が入っていれば、それはネストされた要素の全体です - そしてそれに対処したいですか?ネストを最小限に抑えれば、CSSの複雑さが軽減され、マークアップが読みやすくなります。

関連する問題