Twenty Tenのレイアウトを変える(4)〜3カラムにする

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カラムにも挑戦してみようと思います。

Twenty Tenのレイアウトを変える(4)〜3カラムにする」への3件のフィードバック

  1. ピンバック: デフォルトテーマを3カラムに改造する | 陽だまりに寝ころんで

  2. kankiti

    はじめまして、kankitiと申します。
    こちらのサイトを拝見しまして3カラムが完成しました。丁寧な説明ありがとうございます。
    3カラムのサイトが出来上がったのですが、他のサイトで見たサイドバーが気になっておりマネしたいのですが、手だてがわかりません。もし、教えて頂けたらと思いまして書き込みをさせていただきました。

    primaryとsecondaryを横並びして3カラムにしていますがこのprimaryとsecondaryの上もしくは、下にprimary+secondaryの範囲のブロックを作りサイドバーで大きな記事や写真を張り付けたいと思ってます。ネットで色々探してみたのですが、探し方が悪いのか見つからりませんでした。もしよろしければ教えて頂けますでしょうか?お忙しいとは思いますが宜しくお願い申し上げます。

    返信
    1. webourgeon 投稿作成者

      kankiti さん

      >こちらのサイトを拝見しまして3カラムが完成しました。丁寧な説明ありがとうございます。
      よかったです!こういうお話を聞けるのは励みになります。

      おたずねの件ですが、もしかしたら、この「coraline」というテーマのような感じでしょうか?

      簡単に説明しますと、このテーマでは、新しくウィジェットのエリアを作り、それをテーマでサイドバーの一番上に読み込み、
      CSSで調節しています。

      このWebourgeonのブログの上部に3つ並んでいるエリアも、新しくウィジェットエリアを作り、並べています。

      もしフッターのウィジェットエリアが必要でなかったら、
      テーマの中で、それを一つだけ読み込む位置を変えてみる、というのもありかもしれません。

      ヒントになりましたでしょうか?

      返信

コメントをどうぞ♪