読者です 読者をやめる 読者になる 読者になる

Firefox 3.6でFlashの上に position: fixed; な要素を表示できなくなった件

Firefox Greasemonkey

Firefox 3.5までは

  • "position: fixed; overflow: auto;" をHTMLの要素側に指定する
  • Flashを読み込んでいる embed や object に wmmode="transparent" というパラメータを設定する

これらのいずれかを行うことで,Flash で表示されたコンテンツ上にHTML要素を重ねて表示することができていました。(参考: Flashよりも前面にポップアップを表示する | Web scratch)
このバグなんだか仕様なんだかよくわからない挙動を利用して,拙作のユーザースクリプトではポップアップを動画の前面に表示するなんてことを行っていましたが,Firefox3.6からは一部の要素だけがFlash上に表示されるという非常に中途半端な状況に…。

3.6で行われた何らかの変更が影響していると思うのですが,リリースノートを読んでみてもそれらしき箇所は発見できず…。どうしたものか。

5:45追記

FirebugCSSをいじっていたら一応解決策が見つかった。どうやら以下の条件のいずれかを満たした要素はFlashと重なった部分が表示されないようだ。

  • 背景色 or 要素自体が透明 (Flashが透けて見える)
  • 角丸 (-moz-border-radiusが指定されている)

上記の点を修正したら表示できるようになった。