下部に3列のリンクがあるページがあります。各列はdivに配置され、3つのdivはすべてページの中央にある大きなdivにラップされます。これはテーブルにより適したものですか、それともテーブルは仕事にとって間違った要素ですか?
6 に答える
経験則は次のとおりです。
レイアウトにはDivを使用し、表形式のデータにはテーブルを使用します。
ちなみに、非常にユーモラスな、経験則という用語の語源を確認してください。
あなたが自分自身に尋ねたい質問は、あなたのリンクは表形式のデータの一部ですか?
はいの場合、テーブルを選択します。いいえの場合は、divを使用する必要があります。
意味的に正しい要素を使用してページを作成することが重要ですが、他の要素でも同じ効果が得られる可能性があります。
あなたのリンクに関しては、それらはテーブルの一部ではないようです。divと適切なcssの使用をお勧めします。
jrh
これにはテーブルが適切ではないと思います。私の本では、単に3つの列があるだけでは、表形式のデータにはなりません。いくつかのクリーンなマークアップと優れたスタイルシートを使用すると、これを実現するためのはるかに柔軟な方法を使用できます。左フロートdivを使用する場合は、親コンテナー(100 /要素数)%を満たすように、単にパーセント幅を指定します。そうすれば、別の列を追加したい場合は、その単純なマークアップを1つのスタイルシートに変更します。このようにして、ブラウザテーブルの不安定さに対処する必要がなくなり、デザインの柔軟性が大幅に向上します。さらに、スタイルシートを離れることなくレイアウトを完全に変更できます。
HTMLの背後にある主な原則は、データの意味を「マークアップ」することです。
上記の原則をガイドとして使用します。
見栄えが良いという理由だけで3つの列がある場合は、列に意味がないため、DIV(意味のない「コンテナー」要素)を使用してみてください。
リンクのカテゴリが3つあるために列が3つある場合は、TABLEで問題ありません。リンクの各リストにヘッダーを付けた場合を想像してみてください。これにより、THEADを含むTABLEが必要になります。
実際、各列は「順序付けられていないリスト」であり、LI要素を持つUL要素に変換されます。
また、リンクのリストがあるので、もちろんA要素を使用します。
したがって、第一原理から、次の構造が必要です。
<DIV> or <TABLE> (with <TR>/<TD>)
-> <UL>
----> <LI>
-------- <A>
他の答えとは反対に、テーブルはセマンティックソリューションである可能性があります。3つのセクションが互いに異なり、タイトルが付いている場合<th>
は、タイトルと<td>
各リンクに使用できます。それは完全に意味論的だと思います。