bigpresen.rbでtable要素を使わないように

いしなお! の2006年2月9日分より、tDiaryで高橋メソッドを実現するプラグインbigpresen.rbを知りました。

プラグインが出力するHTMLを見てみたところ、table要素をレイアウト目的で使っていた様子で、それはどうだろうと思っていた(そしてはてなブックマークにそのようなコメントを書いていた)のですが、その後、配布ページで「divでは垂直方向で真ん中に寄せられないので」との説明がありました。確かに、td要素のvalign属性のような効果をCSSのみで実現するのは難しいところではあります。

ただ、bigpresen.rbはJavaScriptで文字の大きさを最適化しているのだから、同様にJavaScriptで文字の大きさと行数を元に、表示領域のちょうど真ん中にくるよう位置を計算して調整するのは可能なのでは、と思いつきました。で、実際にHTML/JavaScriptのサンプルを作ってみました。

文法チェックしてみて、HTML 4.01 strictではnoscript要素内に直にテキストを書けない(ブロック要素のみ)ということを今更ながらに知りました。