記事本文
WinIE は !important に未対応 ?
巡回先である K's Web にて気になる記述を発見。
Win IE 以外のブラウザは "!important" の記述がある特定の値を優先して認識するが、Win IE は未対応のために、それ以降に別の値を記述し、これを上書きする。
色々と CSS の実装に不備が多い WinIE でも、
!important
による優先は実装しているはず…… ?
……と思ったら、 Internet Explorer (Windows) CSSバグリスト - 同一ブロック内では!importantが無視される(5.x/6.0) にて
同一ブロック内に1つのプロパティについて!importantキーワードがある宣言とない宣言を置いた場合、!importantキーワードは無視されより後にある宣言が有効になる。
と書かれているバグのことを指しているようですね。
よって、同一プロパティ内に
!important
無しの記述を書かないか、あるいは書いていても
!important
ありの記述よりも前に書けば問題はありません。
( 同一プロパティ内にて 2 つの記述をすること自体あまり考えられませんが。 )
WinIE にページの内容を見せないバッドノウハウ
ということは、
*{
visibility: visible !important;
visibility: hidden;
}
という記述を CSS に書くと、 WinIE ではページの内容が表示されないということになります。 ( 実際に試しました。 ページの内容は全く表示されませんでした。 )
もちろん、製作者スタイルシートを無効にしていたり、ユーザスタイルシートを使っていたりすれば内容を表示できますし、またそうでなくとも単にブラウザの画面上に表示されないというだけなので、 表示 (V) → ソース (C) としてソースを表示すれば内容の取得はできます。
実際にこういうことをやっても、製作者にも閲覧者にもデメリットは多くあれどメリットはあまりありません。 ただ、こういったバッドノウハウが存在するということだけをメモしておきます。

