これは、 「レイアウトにテーブルを使用しない理由」の質問のような、別の一般的な「一般的なレイアウトのテーブルと div 要素」タイプの質問ではありません。
私はタイムテーブル/カレンダープロジェクトに取り組んでおり、カレンダーはいつテーブルを使用するかの例であると常に想定してきました。<td>
Google カレンダーの構造をざっと見てみると、各列と各列内に forを含むテーブルで構成されているように見えますが、イベントは<div>
内部に定義リストがあります。
なぜこれが有益なのですか?
私自身のアイデア:
- 複数の異なる長さのイベントが同時に開始される (同じ で開始される) 場合、テーブルを適切かつコンパクトにスタイルするのはより面倒な場合があります
<td>
。不要な空白の可能性。 - ページが読み込まれた後にユーザーがイベントを追加すると、たとえば JavaScript を使用してテーブルを更新するのが難しくなります(テーブル ヘッダーの行/列スパンを変更する必要がある場合があるため)。
- テーブルが使用されている場合、x 軸/上部のヘッダーとセルの幅、および y 軸/左のヘッダーとセルの高さは自動的に一致します。テーブルなしでこれを管理するのは難しいかもしれません。
これは重要ですか?表形式のデータは常に実際のテーブルに格納する必要がありますか?
以下は、Google カレンダーの列の簡単な例です。
<td> <!-- column -->
<div> <!-- start event -->
<dl>
<dt>START TIME – END TIME </dt>
<dd>EVENT TITLE</dd>
</dl>
</div> <!-- end event -->
</td> <!-- end column -->
以下は完全な例です。
<td class="tg-col"> <!-- column td -->
<div id="tgCol0" class="tg-col-eventwrapper" style="height:1008px;margin-bottom:-1008px;"> <!-- column div -->
<div class="tg-gutter">
<div class="ca-evp130 chip " style="top:588px;left:-1px;width:100%;"> <!-- start event div -->
<dl class="cbrd" style="height:35px;border-color:#9FC6E7;background-color:#E4EFF8;color:#777777;">
<dt style="background-color:;">START TIME – END TIME <i class="cic cic-dm cic-rcr" title="Recurring event"> </i></dt>
<dd><span class="evt-lk ca-elp130">EVENT TITLE</span></dd>
<div><!-- start masks -->
<div class="mask mask-top" style="border-color:#9FC6E7;background-color:#E4EFF8;"> </div>
<div class="mask mask-bottom" style="border-color:#9FC6E7;background-color:#E4EFF8;"> </div>
<div class="mask mask-left" style="height:38px;border-color:#9FC6E7;background-color:#E4EFF8;"> </div>
<div class="mask mask-right" style="height:38px;border-color:#9FC6E7;background-color:#E4EFF8;"> </div>
</div><!-- end masks -->
<div class="resizer"> <!-- start resizer -->
<div class="rszr-icon"> </div>
</div> <!-- end resizer -->
</dl>
</div> <!-- end event div -->
</div>
</div> <!-- end column td -->
<div id="tgOver0" class="tg-col-overlaywrapper"></div> <!-- column overlay div -->
</td> <!-- end column td -->
編集:
Google カレンダーがそのままの構造になっている理由を忘れずに含めてください。たとえば、Google カレンダーには表があるのに、それを列にしか使用しないのはなぜですか?