smart OR smart

Masato Nakamura weblog

flashの上にdivを置く時の注意

Posted on | 4月 28, 2009 | 2 Comments

先日やろうとしたこと。

flashを背景にしいて、上で何やかんややろうと思ってた。

方法論としては、まずflashを作る。
んで、下記を追加する。
<param name=”wmode” value=”transparent” />
<embed wmode=”transparent”>
これでflashの上に要素を置いても、flashがちゃんと下にくるようになった。

というわけで、今度は上におきたいdiv要素を作り、配置する。
置き方は、marginをマイナスにしようが、position:absoluteしようがどっちでもいい。
僕はmarginマイナスにしてみた。positionの挙動が、あまり好きじゃないんです。
absoluteとrelativeを使いこなさなくちゃいけないのが面倒で…。

さて、これで基本的にはオッケーです。
divんなかにすきなの詰めて遊べばいいと思います。

ところがどっこい、僕はそのdiv要素に、背景画像をしこうと思ってた。
これがうまくいかないんですよねー。
cssでbackgroud:url(img.jpg);とかやっても出てこない。
唯一、IE6だけ出てくる。Firefox、Webkit、IE7とかのモダンブラウザは全死亡。さすがIE6は格が違った。

どうしようかしばらく試行錯誤してみたんですが、どうも、これは仕様のよう。
backgroundプロパティで示されるものは、どうやら一番奥にいってしまうみたい。

仕方ないから、僕はflashの中でその背景を表示させることで回避しました。
flashに無駄なデータとレイヤーが出来るんで邪魔なんですが、仕方ない…。

あんまりいないと思いますけど、flashの上にdivを重ねようって時にはご注意を。
divの背景は、flashの上にはのりません。一番下にいきます。

Comments

2 Responses to “flashの上にdivを置く時の注意”

  1. twr
    4月 28th, 2009 @ 5:25 PM

    こんなんあります
    http://www.gran-suite.com/company.php
    IE6はほんと格が違くて頭が上がりません。

  2. masato
    4月 28th, 2009 @ 11:20 PM

    コメントありがとうございます。

    なるほどー。拝見すると確かに背景にswfなのに、png背景が生きてる様子ですなぁ。
    なぞ!ちょっとそのサイトのCSSの解析をしたいと思います!
    z-indexとかも試したつもりだったんだけどなぁ。ブロックの順番とかか…?

Leave a Reply