●問題
主にIE6で発生しがちな問題だけど、他のブラウザでも起こりうる。
きっちり計算してwidth、padding、border、marginを指定したはずなのに、
その通りにレンダリングされない事がある。
ブラウザ間での誤差が生じることも多い。

●解決
考えられる原因が多すぎて一概には言えないが、
基本的なcssの指定として、widthを指定しない事で解決できる場合がある。

例えば、width:200pxのdivの中に、右寄せでwidth:150pxのリストを入れたいなら、
リストにwidth:150pxを指定するのではなく、divにpadding-right:50pxを指定するべきだ。

ブラウザ間で誤差が発生するのを防げるほか、後からのデザインの調整を行いやすいというメリットもある。
上の例なら、divのwidthを広げたり、縮めたりした時、リストも自然とその幅に調整される。
IE6の解釈はバグであるが、IE6がターゲットブラウザに含まれない場合もそうした方がよい。

●その他
余計な余白やはみ出しなんかの原因は他にもたくさんある。
IE6のバグをよく把握することは、IE6がターゲットブラウザに含まれる場合は当然の事、
これから先増えるであろう、昔作られたwebサイトのリニューアルなどの案件で重要になると思う。
●問題
IE6でも透過pngを使いたい。
できたら背景にも適応したい。

●解決
DD_belatedPNGを使う。
↓詳しい使い方
http://smkn.xsrv.jp/blog/2009/04/postscript_dd_belatedpng_js/

あんまり重くない
使い方簡単
背景にも使える。

background-position:fixed は効かない。
IE6をターゲットブラウザとしないなら、使う必要無し。

●その他
IEとそれ以外ではpngの色味が違ってしまうので、
それが目立つデザインやレイアウトの時には気を付けること。
●問題
ユーザーが印刷すること前提のwebページを制作する時、
メニュー等を印刷時には表示させなくしたい。

●解決法
<head>内でcssを読み込む時、最後にmedia="print"とすれば、
そのcssは印刷時のみ適用されることになる。
そのcssに表示させたくない要素にdisplay:noneを適用すればOK
cssの優先度に気を付ければ問題ないと思う。

●その他
mediaプロパティにはprintの他に、テレビや携帯電話に対応させるものもあるらしいけど、
使う事はあんまりないような気がする。