[CSS]IEのhasLayout関連のバグと解決方法をまとめたサイト -hasLayout.net

IE6/7/8のhasLayoutが原因でおきるスタイルシートのバグとその解決方法をまとめたサイトを紹介します。

hasLayoutについては、以前のエントリで紹介しているので参照ください。
IEでのCSSのバグを回避するhasLayout

サイトのキャプチャ

hasLayout.net

バグは現在、IE6(44個)、IE7(28個)、IE8(19個)登録されており、各ページにバグの解説、バグが生じるデモページ、バグの解決方法とそのデモページなどが掲載されています。

サイトのキャプチャ

IEのCSS Bugs一覧表の一部

また、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

top of page

©2024 coliss