HTML のレイアウトにテーブルを使用することは避けるべきであるという一般的なコンセンサスがあります。しかし、すべての規則には例外があります。デスクトップ アプリケーションで使用されるレイアウトに似たページを使用して、SPA (シングル ページ アプリケーション) を設計しています。
明らかに、HTML はこれらのタイプのページには適していませんが、他に選択肢はほとんどありません。DIV を使用してこれらのレイアウトを実装することは、CSS トリック、ハードコーディングされた値、さらにはサイズ変更イベントでの JS 計算の組み合わせを必要とする、まったくの地獄です。最近、グリッド フレームワークを使用してこれらのレイアウトを実装することについて、この質問をしました。
しかし、テーブルベースのレイアウトが適切かどうかを再考するために立ち止まりました。典型的な批判は、SPA のユニークなケースには当てはまらないようです。
レイアウトからのコンテンツの分離 — SPA は実際にはコンテンツではない (AJAX で埋められたデータを含むスケルトンにすぎない) ため、この議論は当てはまりません。これは単なるインターフェースです。私は、Google がそれをインデックスに登録することを期待していません。
テーブルは保守性が低い— この場合はそうではありません。これを DIV で実装するために経験しなければならない CSS 地獄は、はるかに高いメンテナンス コストを伴います。
テーブルはレンダリングに時間がかかります — もちろん、代替手段を使用して作成する複雑なレイアウトでは、レンダリングにテーブルよりもさらに多くの計算が必要になります。通常は、JS のサイズ変更イベントを使用して固有の制限を補っています。ブラウザーがレンダリング エンジン内でネイティブにこれを行う方がはるかに効率的です。
これらの議論に照らして、テーブルベースのレイアウトは SPA の特定のケースに適しているのでしょうか、それとも他の重要な要素を考慮していないのでしょうか? さらに良いオプションはありますか?