トップ «前の日記(2006年03月12日(日)) 最新 次の日記(2006年03月14日(火))» 編集

もりげのどうかと思うような日記

過去の日記
feed:RSS/atom

2006年03月13日(月) CSS

背景画像でテキストを消す話

ちょっと思い立って(X)HTMLを勉強中だったり。まったく知識のない状態から学びはじめたので、新鮮な気分ではある。

デザイン上、h1要素の文字を、後の要素の背景画像で塗りつぶすということを試みる。「背景画像でタイトル」という奴ですな。だが、IE6では消えるのにOperaその他でうまく消えてくれない症状に直面した。

で、いろいろやってみてわかったのが、背景画像を設定する要素には、 position; relative; なり、 position: absolute; なりを指定しないと、先の文字の方が上に表示されてしまうらしいということ。なんでなのかはよくわからないので誰か教えてください。

しかし、目指しているデザインは、 Googleキャッシュで崩れない、というものなので、 position: absolute; は基本的に使えない。そしてMacIE5を考えると、 position: relative; で負の値を指定することは避けなければならない、らしい。困った。

で結局、仕方がないので、div要素を増やしてそちらに負の margin を指定、その中に入れたdl要素に position: relative; だけ指定して背景画像を置いてみた。これでめでたく文字は消える。

えーと、やってることは間違ってませんよね? たぶん。初心者もいいところなので、暗中模索といった気分。

本日のツッコミ(全2件) [ツッコミを入れる]
_ 186 (2006年03月14日(火) 11:57)

h1に背景画像を用意しておいて, text-indent: -9999px; というやり方もあります.<br><br>http://www.fsiki.com/jet/archives/2006/01/text-indent.html<br>http://www.akatsukinishisu.net/itazuragaki/css/css_nite_5_and_image_replacement.html<br>http://d.hatena.ne.jp/hoshikuzu/20060219#P20060219IMAGEREPLACING

_ もりげ (2006年03月14日(火) 22:10)

なるほど、遠い彼方に吹っ飛ばすわけですね。おもしろい。参考リンクありがとうございます。いろいろ読んでいると勉強することが多すぎて気が遠くなりそうです。<br><br>ご指摘の方法は、h1にはタイトル下のボーダー用の画像を割り当ててしまっていることと、あと、画像のみオフにした場合にタイトル表示された方がいいよね、ってことで、ちょっと合わない様子。

[]

  1. もりげ (04-13)
  2. トリガラ (04-13)
  3. V林田 (04-12)


mail:gerimo@hotmail.com