今日はヘッダー画像を変えようと思いましたがうまくいかず(いいのを作れなかった)、各要素の背景色を分けることにしました。
特に3カラム部分は背景を色分けしてみたかった。
まあフロントページではカテゴリの背景色違うのにカテゴリページに行くと同じ色なのはどうなんだという気もしますが…。
とにかく背景色を各div要素で色分けしました。
ただそうすると高さが不ぞろいになってしまったんですね。
うちは基本的な構造で、
<div id=”container”>
<div id=”header”>
</div>
<div id=”contents”>
<div id=”left-sidebar”>
</div>
<div id=”posts”>
</div>
<div id=”right-sidebar”>
</div>
</div>
<div id=”footer”>
</div>
</div>
これでそれぞれleft-sidebarとpostsとright-sidebarを
div#left-sidebar{
float: left;
}
div#posts{
float: left;
}
div#right-sidebar{
float: left;
}
として横並びの3カラムにしていたわけですが、これだと背景の高さが不ぞろいになると。
なので昔ながらのfloat: left;をやめてdisplay: table;に変えました。
div#contents{
display: table;
}
div#left-sidebar{
display: table-cell;
}
div#posts{
display: table-cell;
}
div#right-sidebar{
display: table-cell;
}
とすると今度は別の問題が発生しまして、
うちのページではフロントページのみ3カラムでそれ以外は2カラムなんですね。
つまりleft-sidebarとpostsしかない。
そうなるとなぜかleft-sidebarの上に不可解なpaddingができる。なぜ。
別に問題はないんですがフロントページとレイアウトが微妙に違うの気になる。
フロントページ以外にのみあるページナビゲーションの分の空間なのかもしれない。
あそこだけfloatつかってるわ…。
あとフッターにも色振ってみたらなぜかフッターと3カラムの間にマージンができてる。
どういうことにゃあ???
まあフッター使ってる意味もないから消せば解決なんだけど……
あと3カラム部分とcontainer部分で可変下限が異なるのを発見。
3カラム部分は左サイドバーだけmin-widthを指定していない。
これも今後直す部分ということでメモ。
ちなみに前の記事に書いてたiphoneのツイッターブラウザで崩れる問題。
display: table;にしたら解決しました。やたー。
しかしtableだなんて…
昔はHTMLでtableタグ多用してtableタグはダメと言われてCSSにしたのに、そこでもtableになるとは…。