FirefoxとIEで、aタグ以外に対するhoverの挙動が違う件

CSSで便利なhoverですが、Firefoxの場合、divだろうがliだろうが何にでも効くようです。
しかしIE〜6ではaタグにしか使えない。
というか、Firefoxばかりしかつかってなかったので、hoverって何にでも効くんだと思ってた。。IE効かなかったのか。
携帯サイトばっか作ってたので気づかなかった。。


で、肝心のIE6は(7はおk)

li:hover {
    color: #000;
}

こういうの使えないんですね。aのみ。a:hoverだけ。


でも、IEでもやってるサイトあるような気がする、何処といわれて思いつかないけどたぶん絶対そう。
って思って調べてみたら

http://www.xs4all.nl/~peterned/csshover.html#changes

ここでdownloadできるcsshover.htcっていう、htcファイルをCSSで読み込むと、IEでも可能になる、とのこと。


IEのビヘイビアって機能らしい。英語で書くとbehavior。初めて知りました。
IE使わないからしらねーと言い訳。


こいつを、CSSを呼び出すhtmlファイルの階層において、CSSでbodyに対して

body { behavior:url("./csshover.htc"); }

とやる。


すると、なんと!!1、  、、。  あれ、動かない○| ̄|_


どうやら、htcファイルが何者かを記すために、apache側(httpd.confとか。.htaccessでもおk)で、

AddType text/x-component .htc

と追記する必要があった。(レンタルサーバでははじめから設定してある場合もある)
もちろんhttpd.confの何処でもおkですよ


すると、Firefoxで出来ていたけどIEで出来なかった、はず、のli:hoverとかなんとか:hover動作が動いたのです。
これはびっくり、ビヘイビアー、すげー。IEコンポーネントすげー。


IEコンポーネント、ビヘイビアーとか色々調べてみるとちょっと便利なものが一杯ありました。
でもIEでしか使えない=あんま意味ないものが大多数な気がしました。。。


ローカルで効かないから制作マシンにapacheとか入れてないとテスト出来ないし、レンタルサーバでは無理なこともありそう。やっぱりIEうぜー


以上Firefox信者がお送りいたしました。