KANTENNA.COM

Solarized

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

3. cssの設定

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

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

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>
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.  }

実行結果

ファイル名 効果
擬似クラス拡張 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もかかれてます。

トラックバック(1)

2009年1月30日 16:04

複数の異なるバージョンのIEをインストール、起動する情報備忘録

複数の異なるバージョンのIEをインストール、起動する続きを読む

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.08

[Ubuntu11.10]Winows XPユーザーがUbuntuを使ってみて

Windows XPとUbuntuのデュアルブート環境にしてみておもったこと。

2012
02.03

[jQuery]closest()とparents()

今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた今日、 みなさんいかがお過ごしでしょうか。

今回の投稿はそれとは関係のないjQueryのparents()とclosest()が 似てたので何が違うのか試した時のメモです。

2012
02.01

[jQuery Mobile]初期化イベントメモ

jQuery Mobileは読み込まれてから

mobileinit -> pagebeforecreate -> pagecreate -> pageinit

の順番でイベントが発生する。

2012
02.01

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

2012
01.28

[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑

ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。

2012
01.26

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

2012
01.25

[Ubuntu11.10]Ubuntuのインストール後の設定

インストール完了後の環境構築。PC起動時いちいちBIOSからブートドライブ選んで ブートするのかと思ってたら起動時にOS選択画面が出てくる。

すばらしいですね。

2012
01.24
2012
01.23

MinGW+Mintty+Git

MinGW+Mintty+Gitをやろうとして失敗に終わった。このエントリーには収穫できるものはありません。