安芸川晴海
2000/03/18(土) 17:21:04
>そ~言えば、私まだアップロードをしてないんですけど、それが原因かも・・・。
ご相談の件は、アップロード前にローカル環境で確認しているけれども、表示がうまく行かない、ということですよね。でしたらアップロードしているとかしていないとかは関係ないと思われます。
絶対URLを指定すべき場合もありますが、この場合は明らかに、相対URLで指定すべき状況でしょう。
その方法は、河童さんがおっしゃっている通り、なのですが。
あえて繰り返しますと、問題のHTMLファイルが、
A:\homepage\xxx.htmlという場所にあるならば、
BODY要素の開始タグとして記述すべきは
<body background="xxx.gif">
ですし、
A:\xxx.htmlならば、
<body background="homepage/xxx.gif">
A:\homepage\xxx\yyy.htmlならば、
<body background="../xxx.gif">
A:\homepage\xxx\yyy\zzz.htmlならば
<body background="../../xxx.gif">
A:\xxx\yyy.htmlならば、(xxxはhomepage以外のフォルダの名前と思ってください)
<body background="../homepage/xxx.gif">
いい加減しつこいので、このあたりでやめましょうか。
とりあえず、こんな感じです。
結局のところ、アップロードする、ということは、今あなたがファイルを置いている場所とは別の場所へファイルを移す(コピーする)ということですから、URLを記述するにあたって、ファイルの具体的な場所を記述してはいけないのです。アップロードによって場所が変わってしまうのですから。
そこで、HTMLファイルから、画像ファイルが、相対的にどの位置にあるのか(同じフォルダ内にある、一つ上のフォルダ内にある、一つ下のxxxというフォルダ内にある、など)、というのを記述するわけです。
HTMLファイルと画像ファイルが同じフォルダに存在するならば、相対位置としては画像ファイルの名前だけを記述すればよいですし、
一つ上のフォルダに画像があるならば、「一つ上のフォルダ」を意味する"../"を頭にくっつけて、"../xxx.gif"のようにすればよいですし、
また、一つ下のフォルダに画像があるならば、そのフォルダの名前をくっつけて、スラッシュで区切り、"yyy/xxx.gif"のようにすればよいのです。
あとはこれらの組み合わせですね。「HTMLファイルのあるフォルダから、一つ上のフォルダに戻って、そこにxxxというフォルダがあって、xxxの中にyyyというフォルダがあって、yyyの中にzzz.gifという画像がある」という場合でしたら、
../xxx/yyy/zzz.gif と書けます。
ところで、最近発表されたHTMLの仕様書によると、「背景を張る」というような表示スタイルの指定はHTMLそのものではなく、スタイルシートによって行うべき内容であるとされています。そうすることによって、WWWのバリアフリー化や、HTML文書の再利用性の向上がもたらされるからです。
現状ではスタイルシートにも少し問題点がありますし、賛否両論あります(
../200003/00030084.htmを参照)。それに何より、いきなりスタイルシートを扱うのは難しいでしょうから、「是非スタイルシートを用いてください」とは言いませんが、将来的には背景効果指定のスタイルシートへの移行を検討してくださると、私は嬉しいです。
……え? 話がくどいですか? 失礼しました。