HOME>情報備忘録>IE6以下で<a>以外にも:hoverを利用

IE6以下で&lt;a&gt;以外にも:hoverを利用

Web creators (ウェブクリエイターズ) 2008年 01月号 [雑誌]のすぐに使えるCSSデザインテクニックネタ。

IE6以下ではa要素以外の:hoverや:activeをサポートしていないのでCSSで見た目を変化させようとしてもできないが、IE独自のビヘイビアを利用することでIE6でも:hoverや:activeができるようになるという。

試してみたが恐ろしく簡単な手順で恐ろしく使えることがわかって眠気がぶっ飛んだ。

手順は下記の3ステップ

  1. .htcファイルのダウンロード
  2. MIMEタイプの設定
  3. CSSの設定

1. .htcファイルのダウンロード

世の中にはいろいろなhtmlコンポーネントがあるようだが、とりあえずは:hoverなどの擬似クラスを拡張してくれる「csshover.htc」を利用してみよう。

ダウンロードページ
whatever:hover

上記ページから

  • Version 1.42.060206 (:hover and :active)
  • Version 2.02.060206 (1.42 and :focus)

の2つをダウンロードしておこう。ダウンロードファイルを解凍すると「csshover.htc」と「csshover2.htc」が出てくるが1.x系が:hoverと:activeをa以外にもbody内のすべての要素で利用できるようにするもので2.x系が:focusをa,input,textareaで利用できるようにするものらしい。目的に応じてサイトにコピーしよう。

2. MINEタイプの設定

専用サーバならconfファイルとかで設定するのだろうか?共有サーバの場合は.htaccessが利用できれば設定可能だ。おそらく有料のホスティングサービスなら大抵設定できると思われる。.htaccessに下記一文を追記してUPしましょう。

.htaccess

  1. AddType text/x-component .htc
  2.  

3. cssの設定

body 以下の要素に適用するにはcssに下記のように記述する。

CSS

  1. body {
  2.         behavior: url("/ファイルまでのパス/csshover.htc");
  3.         behavior: url("/ファイルまでのパス/csshover2.htc");
  4. }
  5.  

cssからのパスではなくcssを呼び出すファイルからのパスになるのでドキュメントルートからのパスで設定したほうがよいです。

これで準備は完了。あとは下記のようなソースで利用できます。

HTML

  1. <table>
  2. <thead>
  3. <tr>
  4. <th>ファイル名</th>
  5. <th>効果</th>
  6. </tr>
  7. </thead>
  8.  
  9. <tbody>
  10. <tr>
  11. <th>擬似クラス拡張</th>
  12. <td>csshover.htc</td>
  13. </tr>
  14. <tr>
  15. <th>csshover.htc</th>
  16. <td>:hover、:activeをすべての要素で</td>
  17. </tr>
  18. <tr>
  19. <th>csshover2.htc</th>
  20. <td>:focusをa、input、textareaで</td>
  21. </tr>
  22. </tbody>
  23. </table>
  24.  
  25. <br />
  26.  
  27. <input type="text" /><br />
  28. <textarea></textarea>
  29.  

CSS

  1. tbody tr:hover {
  2.   background-color: #FFCC00;
  3. }
  4.  
  5. tbody tr:active {
  6.   background-color: #00CCFF;
  7. }
  8.  
  9. input:focus {
  10.   background-color: #FFFFCC;
  11.   font-weight: bold;
  12.   color: #FF0000;
  13.   font-size: 2em;
  14. }
  15.  
  16. textarea:focus {
  17.   background-color: #FFFFCC;
  18.   font-weight: bold;
  19.   color: #FF0000;
  20.   padding: 10px;
  21.   height: 200px;
  22.   width: 200px;
  23. }
  24.  

実行結果

ファイル名 効果
擬似クラス拡張 csshover.htc
csshover.htc :hover、:activeをすべての要素で
csshover2.htc :focusをa、input、textareaで


確認したところIE6、Multiple Explorers の5.01、5.5で動作しました。macIEでも動作しそうですね。

これでフルCSSのプルダウンとかも簡単に作成できそうです。

またWeb creators (ウェブクリエイターズ) 2008年 01月号 [雑誌]には同じように透過PNGをサポートしてくれる.htcもかかれてます。

投稿日 2007年12月10日 00:55
カテゴリ 設定
タグ ブラウザ | ライブラリ
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/977

コメント

コメントする
Name
Email Address
URL