διαφωρα

Firefox 2
魅力的な新機能が搭載されたMozilla Firefoxは、無料でダウンロードすることができます。
weblog

div要素をワイヤーフレームとして使わないCSSレイアウト

Posted by diafwra at 2006-05-21T07:48:43+09:00

さて、今回のCSS改造における最重要課題であったのが、div要素をワイヤーフレームとして使用しないCSSレイアウトです。原理は単純で、body要素直下の意味的ブロック要素すべて(と適宜必要となる要素と)にid属性を割り振る、ということに尽きます。

このサイトにおいては、以下のようなCSSを書いてレイアウトを実現しています。

/***************************************
  Left Column
****************************************/
p#xreaad,
div#linkunitads,
h2.date,
...
dl#listtitle {
  _display:inline;/*forIE6*/
  float:left;
  clear:both;
  width:55.8%;
  margin-left:3%;
}
/***************************************
  Right Column
****************************************/
p#prev,
p#next,
h2#searchthisblog,
...
ul#archivetree {
  margin-left:61.8%;
  margin-right:3%;
}

このように、それぞれの領域に収めたい要素とそのid属性とのセットすべてを指定しなければいけないのが面倒なところですが、div要素を使うときと同じような仕方で(なんとなぁく)カラムを分けることは可能です。

パーセンテージの指定についてですが、左端・右端・真中のそれぞれに3%の隙間をあけることを考慮して、まず、右カラムに指定する左マージン(ここでは61.8%)を決定し、左端の隙間と真中の隙間との合計である3+3=6%を先の値から引いた値(55.8%)を左カラムのwidthとして指定します。左端の隙間3%を左カラムの左マージンに、右端の隙間3%を右カラムの右マージンに指定すれば、自動的に真中の隙間3%が決まります。このやり方はIEでバグるので、左カラムにdisplay:inline;を指定しています(cf. IE Doubled Float-Margin Bug)。

しかし、ここでのwidthの指定は必須なので、float指定のされたカラム内に含まれる各ブロック要素に対する横方向paddingの個別指定ができなくなります。対象ブロック要素のみの背景色を変えたいというような場合以外は必要ない気がしますが、どうしてもという場合には、divをかませるほかないかと思われます(cf. IE6のwidth解釈バグ対処法)。

見出しや段落ごとに異なるpaddingの値を指定したくなりますが、左側のタテの線はそろっていたほうがいい気がします。結果として、かなり整然とした見栄えになると思います。

投稿されたコメント
No Comment
この記事に言及したエントリ
No TrackBack
コメント記入欄

こちらのフォームに記入してください。

TrackBack URI
http://istologia.s201.xrea.com/ping/d20060521_0748
Prev:
ぴんぴん
Next:
XHTMLに対して十全であるようなCSS
Archives
2006 (63)
11月 (4)
10月 (31)
9月 (2)
8月 (1)
7月 (3)
6月 (1)
5月 (7)
3月 (3)
2月 (8)
1月 (3)
2005 (53)
12月 (9)
11月 (19)
10月 (17)
8月 (8)
©2005-2006 diafwra, some rights reserved. blosxom pwrd et bsk mdfd.