Negative Margin Trick

Posted at 2005-03-20T22:42:00+09:00 in Web Design

どうしてもフッターが横幅いっぱい出ないと気持ちが悪かったので、デザイン自体はそのままでCSSをいじり倒してみました。positionでの絶対配置によるレイアウトのままで、フッターを常にページ最下段に置きかつ横幅いっぱいというのはメンドクサそう(height周りの実装がバリエーションに富んでいるので)なので、floatによるレイアウトに戻してみました。うちのサイトはHeader + (Liquid Column + Fixed Column) + Footerという構成なので、いわゆるCreating Liquid Layouts with Negative Marginsというのを利用して、レイアウト。てか1年半前から使いつづけていたモノに戻ったとも言う。

モックアップはこのようになってます#header#footerは何も考えずに、通常のフローに従って配置するので、特に何もレイアウト的に凝る必要は無いですが、#footerclear: both;を指定しておく必要はあります。主要な部分は#contentsへ指定するmargin-rightで、この値に#sidebarの(Fixedな)幅分マイナス方向に指定してやります(つまり#sidebarの幅を300pxにしたいのなら、#contentsmargin-rightに-300pxを指定するということ)。これで大体完成ですが、このままだと#contents#sidebarが重なり合ってしまう(まぁそういう風に指定しているわけですが)ので、#contents直下の全てのブロック要素に、margin-right#sidebarの幅分プラス方向に指定してやると重ならなくなります。

これでレイアウトはほぼ問題無いんですが、各カラムにbackgroundプロパティで背景に上から下まで色を塗る(背景画像を敷き詰める)といったことは出来ません。その場合はbody要素にbackgroundを指定してうまいことやるという、Faux Columnsというテクニックを応用して利用する必要があるでしょう。

何も考えずにHeader + (Liquid Column + Liquid Column) + Footerで作るならば、二つのカラムのwidthを足して100%になるようにすれば良いわけで、何気にあまり役に立たなかったりします。が、うちのサイトのようにどうしてもいわゆるサイドバーにあたるカラムを固定したい時には役に立つかも。

Recent entries from same category

このエントリと同じカテゴリに投稿された最近10件のエントリです。

  1. CSSグラデーションのちょっとしたテクニック #2
  2. google-code-prettifyを導入した
  3. CSSグラデーションのちょっとしたテクニック #1
  4. YUI 3: CSS Resetの問題
  5. Pure CSSな吹き出し
  6. リデザインとborder-radiusとtext-shadow
  7. 404エラーページの改善
  8. HTTPエラーページ
  9. 無料で400以上のフォントを手に入れよう!
  10. 安全な@font-faceの書き方(抄訳)

Comments

JavaScriptに対応、または有効な環境の場合、ここにこのエントリへのはてなブックマークコメントが表示されます。