CSS の多くの制限と互換性の問題に苛立ち、Web ページを思い通りにレイアウトするために JavaScript コードを常に記述する必要があることに気づき、ページ構造化のために CSS を完全に捨てることで、将来のプロジェクトを合理化できるのではないかと考えました。
私は、XML ファイルで指定されたレイアウトを解析する JavaScript ライブラリを作成し、それらを絶対位置とサイズの、ネストされていない div を使用して HTML ドキュメントに適用しました。つまり、各ページには、すべてのコンテンツを含む HTML ファイル、そのコンテンツをページ上でどのように配置するかを指定する XML ファイル、および表面的なスタイリング用の CSS スタイル シートが含まれているということです。
ここに例があります。(ボタンを押してレイアウトを膨張させます。すべての主要なブラウザーの最新バージョンでテスト済みです。) もう 1 つ。
このシステムはプレーンな html に適切に分解され、javascript が無効になっている場合に個別のスタイル設定を行うことさえできます。
このアプローチにより、多くのクロスブラウザーの問題が解消されるだけでなく、より少ない作業でより複雑なレイアウトを実現できるように思えます。たとえば、私の理解では、少なくともネストされた div の混乱なしでは、CSS だけでは次のことを行うことはできません。
- 親コンテナー内で使用可能な幅または高さを埋めるように要素を設定します。(親コンテナーに他の要素がある場合、これは width/height:100% と同じではありません。)
- サイズが不明な場合でも、任意のコンテナ内で任意の要素を上/中央/下、左/中央/右に揃えます。
- 要素のサイズを大きくせずに、サイズが不明な要素をパディングします (たとえば、div がウィンドウ サイズの 100% に設定されている場合、ウィンドウをオーバーフローさせずにパディングすることはできません)。
- 親要素内のすべての要素が等間隔になるように自動的に設定します。
- 浮動要素の高さを設定します。同様に、シュリンク ラッピング動作を水平および垂直に個別に設定します。
- 要素を行ではなく列でフロートするように設定します (CSS3 は列をサポートしているようですが、ブラウザーの互換性は良くありません)
それにもかかわらず、これは冒涜的であると考えられていると確信しています。では、このシステムを使用して Web ページをレイアウトする際の潜在的な問題は何でしょうか?