2008年11月20日木曜日

CSSでDIV要素の行の高さを揃えよう

以前のエントリCSSのシブい技にて、CSSを使って横並びのDIV要素の高さを揃えようって話を書いたんだが、しばらくしてみて不具合発覚。

同一ページ内のリンクをクリックしてジャンプすると、上の方の内容が隠れてしまうのです。
これはやっぱり見えないけどこっそり存在しているpadding領域のせいなのかな?

う~ん、今度こそJavaScriptですか~?と思っていたところ検索してみると、CSSを使った別の方法が見つかりました。

複数カラムの高さをそろえるクロスブラウザなCSS | CREAMU

というやつで、簡単に言うと、DIV要素を重ねて、列の幅のぶんだけずらしていく方法(はみでたところはやっぱり隠すんだけど)。

前よりこっちの方がマニアック度は低いかもしれない。
だが、widthとかleft/rightの値に何を設定すれば良いか、すぐに頭の中で算出できない自分がいました。
でもとりあえず同一ページ内リンクでもくずれなくなったし、FireFox/Chrome/IEどれ使ってもちゃんと同じように表示されたし(ついでにmargin/paddingとwidthの同時指定によるIEのバグにも引っかからなくしたし。これはまたいつか書こう)、言うことなし。

しかしいろんな方法があるもんだねぇ。。。
昔ながらのtable使ったレイアウトの方が100倍楽だよな~。。。

0 件のコメント: