2017年3月
左サイドバー上に余計なpaddingができる問題

今日はヘッダー画像を変えようと思いましたがうまくいかず(いいのを作れなかった)、各要素の背景色を分けることにしました。
特に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になるとは…。

改装7割くらい終了

がんばりました。
フロントページを3カラムリキッドにして、左をサイドバー、中を作品、右を雑記にするというのがようやくできました。
フロントページ以外は2カラムで、右側の空白が気にならないではないですが、なんか考えます。
一応レイアウトも崩れずにできました。
ワードプレスとはいえかなり手打ちでphp内にかなり直接書き込んでるのでほぼ昔ながらのホームページ作りといったところ。
色合いとか背景画像とかのところはまたいずれ…。
ここまで作りましたがなんかアドバイスあればください…。

iPhoneのツイッターアプリから見るとレイアウト崩れてましたがそれ以外では問題なかったので無視します。なんだろあれ。
Androidの方では問題なかったのでよくわからん。