WordPressのデフォルトテーマであるTwenty Tenのレイアウトのレイアウト変更について考えてきましたが、今日はいよいよ3カラムにしてみたいと思います。普通に3カラムを作る事は、それほど大変な事ではないのですが、Twenty TenでCSSのみの変更で3カラムを作ろうと思うとちょっと面倒な感じがしてしまいますね。
2つ目のサイドバーはどこに?
Twenty TenのレイアウトのCSSがどのようになっていたのかもう一度思い出してみます。
#container {
float: left;
margin: 0 -240px 0 0;
width: 100%;
}
#content {
margin: 0 280px 0 20px;
}
#primary,
#secondary {
float: right;
overflow: hidden;
width: 220px;
}
#secondary {
clear: right;
}
「#secondary」が2つ目のサイドバーで、外観>ウィジェットの「ウィジェットエリア2」に入れた内容が表示されます。(Twenty Ten テーマの構成(レイアウト)-1)「ウィジェットエリア2」に項目を入ただけでは、「ウィジェットエリア1」の下に縦に並んで表示されてしまいます。
サイドバー2つを右に横並びにしたい
サイドバー2つを右に横並びにしてみたいと思います。サイドバーが2つとも右にfloatさせてあったので、「primary」を左に、「secondary 」を右に振り分けてみます。
変更前
#primary,#secondary { float: right; }
変更後
#primary{ float: left; }
#secondary { float: right; }
ところが、これだけではほんのわずかしか動いてくれません。「content」の部分が広く場所をとっているので、つっかえてしまっているような状態です。
コンテンツ部分のマージンを調整してみる
サイドバーの幅が220 pxなので、2つ分のあきが欲しい訳ですから、「content」の右に440pxのマージンをとってみます。
#content {
margin: 0 440px 0 20px;
}
まだ動きません。そうです、「container」が邪魔しているのですね。あの、面倒なマイナスのマージンです...
containerのマージンも調節する
containerのマイナスのマージンも倍にしてみます。
#container { margin: 0 -440px 0 0; }
できました!これが右にサイドバー2つを横並びさせる3カラムに変更する原理です。
分かりやすいように、カラムとカラムの間隔を計算に入れていませんので、このままではすべてがつながって表示されてしまいます。それに、サイドバー1つが220pxでは広すぎて、コンテンツ部分がとても狭くなってしまいます。今までの考え方をもとに調節してみます。
3カラムにする仕上げ
サイドバーの幅を180pxにすることにします。コンテンツの左のマージンも今回はいらないので0にしてしまいます。それぞれのカラムの間に間隔を取ります。
#container {
float: left;
margin: 0 -380px 0 0;
}
#content {
margin: 0 400px 0 0;
}
#primary {
float: left;
width: 180px;
}#secondary {
float: right;
width: 180px;
}
このような感じになりました。マージンなどはお好きな感じでどうぞ。
次は他の3カラムにも挑戦してみようと思います。
ピンバック: デフォルトテーマを3カラムに改造する | 陽だまりに寝ころんで
はじめまして、kankitiと申します。
こちらのサイトを拝見しまして3カラムが完成しました。丁寧な説明ありがとうございます。
3カラムのサイトが出来上がったのですが、他のサイトで見たサイドバーが気になっておりマネしたいのですが、手だてがわかりません。もし、教えて頂けたらと思いまして書き込みをさせていただきました。
primaryとsecondaryを横並びして3カラムにしていますがこのprimaryとsecondaryの上もしくは、下にprimary+secondaryの範囲のブロックを作りサイドバーで大きな記事や写真を張り付けたいと思ってます。ネットで色々探してみたのですが、探し方が悪いのか見つからりませんでした。もしよろしければ教えて頂けますでしょうか?お忙しいとは思いますが宜しくお願い申し上げます。
kankiti さん
>こちらのサイトを拝見しまして3カラムが完成しました。丁寧な説明ありがとうございます。
よかったです!こういうお話を聞けるのは励みになります。
おたずねの件ですが、もしかしたら、この「coraline」というテーマのような感じでしょうか?
簡単に説明しますと、このテーマでは、新しくウィジェットのエリアを作り、それをテーマでサイドバーの一番上に読み込み、
CSSで調節しています。
このWebourgeonのブログの上部に3つ並んでいるエリアも、新しくウィジェットエリアを作り、並べています。
もしフッターのウィジェットエリアが必要でなかったら、
テーマの中で、それを一つだけ読み込む位置を変えてみる、というのもありかもしれません。
ヒントになりましたでしょうか?