HTML+CSS

background-imageのurl指定で画像が表示されない原因

朝活英語のアイキャッチ

こんにちは。としです。

今日はHTMLのbackground-imageについてのお話しです。

 

background-imageはよく使うCSSのプロパティですが

背景画像を設定するものですね。

 

それで指定の仕方は

background-image: url(“ここに画像のパスとファイル名を記入“);

ですね。

でurlのパスの指定を間違うと当然ですが、表示されません。

パスというのは表示したい画像が置いてある場所の事です。

 

ここでパスの書き方ですが、この記述がstyle.cssなどのCSSファイルだとしたら

そのCSSファイルがあるところから見た画像の置き場という相対パスでの指定になります。

 

例えばWordPressのテンプレートだとした場合

一般的にstyle.cssはテンプレートフォルダの直下にありますね。

例)wp-content/themes/theme名/style.css

そして、theme名フォルダ(ディレクトリ)の中に画像が入っているimgフォルダがあるとします。

例)wp-content/themes/theme名/img

その場合の指定の仕方は

background-image: url(“img/ファイル名”);

でOKです。

なぜなら、同じ階層にimg(画像フォルダ)があるからです。

もしくは、

background-image: url(“./img/ファイル名”);

でもOKです。

「./」の意味は、今いる場所(style.cssと同じ階層)という意味です。

 

 

そしたら、別のパターンで、例えば以下のようなフォルダ構成の場合

index.html

img(フォルダ)—画像が入っている

css(フォルダ)—style.cssとかreset.cssなどが入っている

 

このCSSフォルダの中のstyle.cssで同様に、background-imageを設定するとしたらこうなります。

background-image: url(“../img/ファイル名”);

 

上の例と違いが分かりますか?

../というのが追加されていますね。

この../(ドット、ドット、スラッシュ)というのはこの一セットで一つ上の階層に移動するという意味があります。

これはlinuxなど操作するときに使ういわゆる黒い画面でも1階層上に移動するときは、同じく../を使います。

つまり上のURLは「1階層上に移動して、その階層にあるimgフォルダの中のファイル名を読み込む」という事になります。

 

因みに、../../と2回書くと当然、2階層上に移動することになります。

分かってしまえば簡単ですね!

 

background-imageのurl指定で画像が表示されない原因でした!

CSSの微調整やサイトの表示不具合、
「自力での解決」に限界を感じていませんか?
  • 「画像が表示されない原因がわからず、何時間も格闘している…」
  • 「コードを少し書き換えたら、別の場所のレイアウトが崩れてしまった!」
  • 「もっと高度なデザインにしたいけれど、技術的な壁にぶつかっている」

背景画像のパス指定のような「ちょっとしたこと」でも、いざ直そうとすると意外な落とし穴が多いのがWeb制作です。一つ一つを調べて解決するのは素晴らしい学習体験ですが、貴重な経営資源である「時間」を大幅に浪費してしまうリスクもあります。

TEDASKでは、CSSの細かなデザイン修正から、スマホ表示の最適化、サイト全体の高速化、独自の機能開発まで、プロの技術でスピーディーに解決します。
「技術的な悩みはプロに任せて、自分は本業に集中したい」という方は、ぜひ一度お気軽にご相談ください!

この記事を書いた人
Toshi Seito

TEDASK代表
WordPressに関する相談実績のべ600件以上!WordPressの高度なカスタマイズから、海外製の高機能WordPressテーマの導入支援、LaravelによるWEBサービス制作はお任せ下さい。

Toshi Seitoをフォローする