5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

background-image  で背景画像が表示されない

Last updated at Posted at 2019-11-17

相対パスを用いて表示されない時の対処法

HTML・CSSを覚えたての私が、CSS 内で background-image を使って背景画像を表示させようとしたところ、うまく表示されない...:sweat_smile:

調べてみたところ、次のことが分かりました。

  • 絶対パス相対パスというものが存在するらしい。
  • 相対パスを用いる際は階層に注意する必要がある。

絶対パスというのは、URLなどでページやファイルを直接指定する方法ですね。
今回は相対パスを用いて背景画像を指定する際のポイントについてまとめます。

初歩的な内容ですが、自分の学習記録としてまとめてみました。


失敗の原因  どこから見たパスなのか?

今回使っていたファイルの階層構造は下記の通り。

  • 親フォルダ
  • index.html
  • CSSフォルダ → styles.css(ここから画像ファイルを指定)
  • imgフォルダ → pic1.png(背景に表示したいやつ)

このような階層構造のとき、今までHTML内で <img src="〜">で画像ファイルを指定していた経験から、
今回のようにCSS内で背景画像を指定する際も単純に img ディレクトリ内の pic1 を指定すれば良いものだと思っていました。

▼具体的にはこんな感じ

styles.css
/* 略 */
.top-wrapper {
  background-image: url("img/pic1.png");
  background-size: cover;
}
/* 略 */

これが失敗の原因でした。

というのも、相対パスでURLを指定する際はHTMLファイルからではなく、CSSファイルから見たパスを指定する必要があるようです。


というわけで。

  1. styles.css ファイルから一つ上の階層にある CSS フォルダに戻り(../)、
  2. CSS フォルダと同階層にある img フォルダ内の、pic1.png ファイルを指定する(img/pic1.png)
styles.css
/* 略 */
.top-wrapper {
  background-image: url("../img/pic1.png");
  background-size: cover;
}
/* 略 */

解決しました:slight_smile:
たったこれだけですが、パスの意味を知るきっかけになり良かったです!


▼参考にさせていただいたサイト

また、表示したい画像の大きさによっては、width や height を設定しないと十分なスペースが確保されずに画像が切れてしまうこともあるようです。

5
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?