- ベストアンサー
半透明のtable、画像は透過したくない
tableの背景を白くして、alphaフィルターで背景画像をtableに半透明で映しています。 一マスの大きなセルに文章や画像を入れたいのですが、中に貼り付ける画像は普通に表示させたいのです。 文字は透過しても良いです。 tableの背景のみを半透明にして画像はちゃんと表示するという方法はありますか? http://oshiete1.goo.ne.jp/kotaeru.php3?q=677303 の質問で見たテーブルを二つ重ねる方法でも、 文字は透過しないのに画像だけ半透明になってしまいます。 どなたか教えて下さいませ。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ええと、透過したくない画像のスタイルに position:relative を追加してみてください。これで透過しないみたいです。 つまり<IMG SRC="xxx.jpg" style="position:relative">ですね。 IE6で確認しました。おそらくこれでいいと思いますよ^^;
その他の回答 (2)
- nuruhho44
- ベストアンサー率57% (38/66)
>画像だけopacity=100に指定したりしてもムダな抵抗でした…私もやってみました(笑) 余計なことかもしれませんが・・・ filterプロパティはIE独自なんで、あまりお使いにならないで、素直に背景画像をグラフィックソフトで半透明っぽく加工してお使いになるほうが良いのではないかと愚考いたします。ファイルも幾分軽くなりますしね。 それから、やはりfilterプロパティを使うのでしたら、同時に -moz-opacity というプロパティも指定しておけばネットスケープでも透過で表示されますよ。 <TD style="filter : alpha(opacity=70); -moz-opacity : 0.7;"> という感じです。指定方法は0から1までの小数になります。filterの100分の1ですね。 でもOperaでは両方とも表示出来ないです。
お礼
二回もの回答、ありがとうございます。 フィルターは重いんですね。 それと、ネスケの事は全然考えてなかったので参考になりました。 これからも勉強します。
- nuruhho44
- ベストアンサー率57% (38/66)
こんばんは。 例に出された方法では、文字は透過されていないように見えますが、実際は微妙に透過されているようです。(文字が黒なので背景画像が黒っぽければ透過されていないように見える) ですから、このやり方でやるなら、外枠のテーブルの背景は、透過せずに入れておき、中のテーブルは例えば田の字型に仕切ってあるとすると、左上のセルだけ透過させたくないとすれば、テーブル全体を透過させるのではなく、他のセルの<TD>タグ内にfilter:alphaを入れれば良いのではないでしょうか。 形としては <TABLE background="背景画像"> <TR><TD> <TABLE> <TR> <TD><IMG src="セル内画像" border="0"></TD> <TD style="filter:alpha(opacity=70)" bgcolor="#FFFFFF"></TD> </TR> <TR> <TD style="filter:alpha(opacity=70)" bgcolor="#FFFFFF"></TD> <TD style="filter:alpha(opacity=70)" bgcolor="#FFFFFF"></TD> </TR> </TABLE> </TD></TR> </TABLE> </BODY></HTML> ☆ 各タグ内の他の属性は省略してあります。あくまで形です。
お礼
さっそくのご回答、ありがとうございます! やはり、画像を透過させないためにはセルを分けないといけないんですね。。。 画像だけを透過させないコマンドのようなモノがあれば良いなと思っていたのですが、画像だけopacity=100に指定したりしてもムダな抵抗でした…
お礼
そう!!!まさにこれ!!! これです、私が求めていた機能は!! あーー、感激です。ありがとうございました!