Netscape6 PR3 で :hover が効かないっっ

(2001/09/21 追記)このページの内容は古いです。非推奨。

Netscape6 Preview Release3 が出たのでさっそくどんなもんか試してみたです。…アレレ、CSS2 の「:hover 疑似クラス」というものがまったく効きません〜〜。マヂ!? というオハナシ。(ちょいとムヅカシイ話かも)

:hover 疑似クラスってなんぞ?

:hover 疑似クラスとは、それが指定された要素 (一般的呼び方でいうところの"タグ") の上にマウスカーソルを持ってきたときだけスタイルを適用する、というものっす。(CSS2 の領域に区分されとります) リンク文字のところにマウスを持ってくると色が変わったりする、アレです。たとえば

<html>
   <head>
      <title>test</title>
      <style type="text/css">
         a:hover { color: red }
      </style>
   </head>
   <body>
      <p><a href="hoge.html">リンク</a></p>
   </body>
</html>

というHTMLソースのページなら、マウスカーソルをリンク文字の上に持ってくると文字が赤色に変わりまっす。よく見かけますでそ?これ。規格的には CSS2 だから少々ディ〜プな領域なんだけど、お手軽に目立つ効果があがるんで、CSS でもっともよく使われてる記述だったりするかも (笑)

Netscape6 PR3 での病状。

Netscape6 は、さすが「あらゆる Web 標準規格を取り入れたスタンダードなブラウザ」というだけあって、ダメダメだった過去の Netscape Navigator ブラウザとは比較にならんほど CSS 関係も機能実装が充実しとります。ハッキシ言って現在最高峰。…のはずだったのに、とっても目立つ効果である :hover がまるで効かないとゆ〜。(死)

げんみつには、要素 (タグ) 自体には :hover で指定したスタイルが効いているのに、その要素内にある文字そのものに効果が出ない。Netscape6 のベースになってる Mozilla でも同じ。PR2 の頃や ちょっと前までの Mozillaでは大丈夫だったのに。こんなアホな現象は…ばぐかいな? とゆわけで調査。

てすと。

Netscape6 PR3 または Mozilla Milestone 18 周辺 を入れてる人は試してみませう。以下のような記述がされてるとします。

h4:hover { color: red; background-color: pink }
a:hover  { color: red; background-color: pink }

周囲余白 (padding) あり

<h4> 見出し (Heading) </h4>

<a href="./"> リンク </a>

Netscape6 PR3 では、周囲余白に当たり判定があるけど (正常)、文字自体には無い…。

通常

<h4> 見出し (Heading) </h4>

<a href="./"> リンク </a>

Heading はブロック要素なので右側に見えない余白があるのですが、N6PR3 ではそこだけにしか当たり判定が…。もちろん文字自体には当たり判定がない…。

mozilla.org の Bugzilla で

このバグについてはエンエンとギロンされてる模様です。(bug 5693)

Bugzilla というのは、日々作られる Mozilla に発生したバグを報告したりギロンしたり修正例を示したりする、バグ管理用ページです。これによると、込み入った指定の :hover には前々から難しいバグが出てて、その修正の過程で今まで有効に機能していた、単純な場合の :hover もちょっと前から効かなくしてるみたい。んで、そのバッドタイミングで Netscape6 PR3 がリリ〜スされた、ということらしい。…というか Netscape6 の正式リリ〜スまでに直らないかもしれない、という表示が…。おいおい〜。

(繰り返しになっちゃうですが、Mozilla は Netscape6 のベースとなってるものです)

とりあえず解決する裏ワザ

MozillaZine 日本語版掲示板 に、こんなカキコミがあったです。

N6 PR3 で hover を有効にするには、
Netscape 6\defaults\pref の all.js ファイルをエディターで開いて、
// css2 hover pref
pref("nglayout.events.showHierarchicalHover", false);
を true に変更すれば良いようです。お試しください。

ためしにやってみたです。…おおおお。効くでわありませんかっっ。( ̄◇ ̄)

けつろん。

最初のほうに書いたけど、CSS でデザインをしていない "Legacy HTML" なページでも、a:hover だけは使ってるというページはかなりおおいわけです。 そして、Netscape6 は現在最新のブラウザなワケです。その最終ベータである PR3 で、この :hover がまったく効かない、というのを見たら、幻滅は必至でありんす。シロート目にすぐわかる欠陥っすから。

一般人にとって、ブラウザはじめコンピタアプリなんて、気に入った使いやすいものを選ぶのが常だし、気に入らないところがあったら他を使うし。Mozilla がどうとか、Web標準準拠がどうとか、バグがどうとかなんて知ったこっちゃないしね〜。

Netscape6 の Preview Release は、1 のときも 2 のときも中途半端な状態でリリ〜スされてきてて、失望を買ったもんです。デフォルトスキンも超ダサだったし(笑)。今回はルックスもすこしはあか抜けてきてたし。PR3 のリリ〜ス直前の頃の Mozilla は、いちおう :hover も効いてたのになんで、効かなくなってからの Mozilla を元に PR3 にしてしまったのやら。かえすがえすももったいない…。うぐぅ。

いまボクは、2000 年 10 月 17 日製の Mozilla を入れてるんですが (もちろん Netscape6 PR3 よりも新しい)、これだとリンク文字に対する :hover は効くようになってますねぃ。とりあえず IE4/5 のレベルまでは回復したわけだ…。


Copyright © 1998-2006 ALIMIKA SATOMI/NYAN-NYAN-HANTEN.Created: 2000/10/23, Last-modified: 2001/09/21