[CSS]IEのhasLayout関連のバグと解決方法をまとめたサイト -hasLayout.net
Post on:2010年8月3日
IE6/7/8のhasLayoutが原因でおきるスタイルシートのバグとその解決方法をまとめたサイトを紹介します。
hasLayoutについては、以前のエントリで紹介しているので参照ください。
IEでのCSSのバグを回避するhasLayout
バグは現在、IE6(44個)、IE7(28個)、IE8(19個)登録されており、各ページにバグの解説、バグが生じるデモページ、バグの解決方法とそのデモページなどが掲載されています。
また、CSSのチュートリアルでは、IEの便利なトリックも掲載されています。
CSS Tutorial
例えば、下記のようにIEでクリックした際に生じる点線は、他の箇所をクリックしないと消えないため、クリック後しばらくして消したり、元から表示させない方法などが紹介されています。
hasLayoutをtrueにする値
hasLayoutとはオブジェクトがレイアウト情報を持っているかどうかを示すもので、IEでのCSSのバグを回避するためにはhasLayoutの値をtrueにする必要があります。
hasLayoutの値をtrueにするには、CSSで特定のプロパティに下記の値を指定します。
参考:hasLayout
hasLayoutをtrueにする値
property value position absolute float left or right display inline-block width any value or auto height any value or auto zoom any value or normal writing-mode tb-rl
hasLayoutをtrueにする値(IE7)
property value overflow hidden or scroll or auto overflow-x hidden or scroll or auto overflow-y hidden or scroll or auto min-width any value or auto max-width any value or auto min-height any value or auto max-height any value or auto
マイクロソフトはIE8のIE8スタンダードモードではhasLayoutを取り除きましたが、IE7互換モードでは存在するため注意が必要です。
sponsors