CSSで半透明にするときにIEでうまくいかなかった件
CSSで半透明
を参考にdivを半透明にしようと思ったのですが、以下のように書くと、IEだけうまく半透明になりませんでした。
div.test{ background: #ccc; filter:alpha(opacity=65); -moz-opacity:0.65; opacity:0.65; }
そこで、ググってみたところ、以下のページで詳しく紹介してありました。
IEにおいてfilter:alpha(opacity)を設定しても、currentStyle.hasLayout=falseだとが透明にならない。 - Enjoy*Study
半透明にするには、currentStyle.hasLayoutをtrueにする必要があるようで、ページに書いてあるような条件を満たすとこれがtrueになるようです。
CSSで半透明の場合、posision:absoluteだから問題なかったわけで、今回は以下のようにzoom:1を追加することで対処しました。
div.test{ background: #ccc; zoom: 1; filter:alpha(opacity=65); -moz-opacity:0.65; opacity:0.65; }
半透明を使うときは、たいていfloatなりposition:absoluteなりを使うことが多いので、今回のこれは盲点でした。