2010年6月8日火曜日

IE6でmin-height

IE6でもmin-heightを再現したいと思って検索していたら方法が書かれていたのでメモです。

height:auto !important;を宣言する、と。
で、height:100px;と、min-heightで宣言した高さを更に宣言するようですね。

.foo {
min-height:100px;
height: auto !important;
height: 100px;
}


大丈夫かな?と思って怖々でしたが、一応100pxを超える場合もOKのようです。

よかった。


以下、参考になったページ。

2010年5月19日水曜日

floatで左右に振って、スライドバーが出現。

左右にカラムを並べるごく一般的なレイアウトで、以前作ったサイトのページ下部にスライドバーが表示されている事に気がついた。

色々調べて、左右それぞれをfloatで左右に振っているのが良くないと判明。
左はfloatで寄せて、右はmargin-leftで右に寄せていく、という方がベターですね。

floatの多用は気をつけないと、表示崩れを起こしやすい、と改めて認識。

2010年5月12日水曜日

IE6でフォームをfloatしたら、崩れた。。

IE6以外は大丈夫でしたが、
header領域をdivでくくり、その中でformをfloat:rightなどとして右寄せしてみたら、
divのheightを大きく崩して、間延びしたレイアウトになってしまいました。

理由が分からなかったのですが、
formをfloatしても、IE6の場合は括られている領域のheightを押し広げてしまうのが原因と判明。

position:absolute;にして対応して、無事レイアウト崩れが収まりました。

2010年3月9日火曜日

z-indexとpositionの大事な関係。

サイト制作をしていて、headerの背景が、main contents部分の上に重なり、main contentsの文字が欠けてしまって困りました。

z-index関係とは分かりつつ、試行錯誤の末やっと解決したのでメモです。

position:relative;等の指定(static以外のpositionプロパティ)をすると、z-indexは高くなり、指定していない要素の上に重なってしまうということで、
main contents部分のpositionをrelativeにしてもIE6はダメで、結局main contents内にmainとsidebarという領域をfloat等で作っていたので、それらにもposition:relative;を指定してやると無事重なり順を変更できました。

z-indexとpositionはワンセットで指定するものですね。
positionを使って大きめの背景を使い、次の要素をネガティブmarginなどで上にずらしてみたりすると、この問題に遭遇しやすいかもです。

2010年3月4日木曜日

IE6でp要素に幅を指定すると、floatしたimgの横がカラム落ち

IE6でimgをfloatさせてるのにpの横がカラム落ちするからおかしいなあ、と思っていたら、
p要素に幅を指定しているのが原因だった。

IE TESTERで調べていて、pに幅指定をしていたのを思い出し、pに幅指定されていると、floatしてもfloatしたimgのwidth+pのwidthが親要素のwidthより大きいと落ちる様子。

モダンブラウザは大丈夫だから、侮った。

pにwidthなんて指定しちゃいけませんね。やっぱ。

IE6とposition:absoluteと幅高さ指定。

IE6でposition:absolute;を使う場合、
どうもposition:relative;を指定する要素がしっかりwidthやheightが指定されていないと、position指定したとおりになってくれない様子。

モダンブラウザはOKだが、IE6でずれるので、いろいろやってみて縦横を指定したらOKになったので、メモ。

どちらかだけでもいいのかもしれない。要するにhasLayoutというあれが原因かな。。

2010年3月3日水曜日

backgroundの一括指定メモ。

background指定の際、

background-image:url(example.jpg) no-repeat;
ではエラーで、
background:url(example.jpg) no-repeat;
はOK。

なぜなら、background:という指定方法は、「ショートハンド」として複数の属性値を指定可能。

background:url(example.jpg) no-repeat 5px 0;
などとしたら、leftから5px,topは変わらず、となる。
数値指定は、left topの順番。

background,短くて便利。