CSS・見た目をもっと自由に

背景に画像をしこう

背景に色ではなく写真や柄をしけるのがbackground-image。敷きつめる・1枚だけ置く・いっぱいに広げる、3つの敷き方を覚えよう。

background-colorで背景にをしけることは学びました。じつは、色の代わりに画像をしくこともできます。ヒーローいっぱいに広がる写真、うっすら敷かれた模様——雰囲気のあるページの背景は、たいていこのbackground-imageの仕事です。

書いてみよう

.hero {
  background-image: url("photo.png");
}
部分意味
background-image「背景に画像をしくよ」
url( )画像の置き場所を入れる、いれもの
"photo.png"画像ファイルへのパス

url()の中身は、<img>タグのsrcに書くパスと同じ書き方です。

そのままだと、敷きつめられる

背景画像は、何も言わないとタイルのようにくり返し敷きつめられます

小さな画像が、すきまなくくり返されて「柄」になります。模様づくりには便利ですが、意図せずこうなって驚くことも。

くり返したくないときは、background-repeat: no-repeat;1枚だけにできます。

.hero {
  background-image: url("photo.png");
  background-repeat: no-repeat;
}

いっぱいに広げる:background-size

背景写真でいちばんよく使うのが、要素いっぱいに広げる指定です。

.hero {
  background-image: url("photo.jpg");
  background-size: cover;
}

background-sizeは背景画像の大きさを決めるプロパティ。48pxのように数字でも指定できますが、まず覚えたいのはcover(カバー)です。

coverは「すきまが出ないように、画像を拡大縮小して覆いつくす」指定。background-position: centerを添えると、画像の中央が見えるように調整されます。
べんりワザ無料の写真・イラスト素材サイト背景に使えるフリー画像のさがし方は、こちらのべんりワザで

このレッスンのまとめ

  1. background-image: url("パス")で背景に画像をしける
  2. そのままだと敷きつめられる。1枚だけならbackground-repeat: no-repeat
  3. 写真を要素いっぱいに広げるならbackground-size: coverbackground-position: center

やってみよう

今回学んだ「背景画像」は、しまちゃんのページには使いません(しまちゃんのページの背景は、やさしい色だけで仕上げています)。写真を大きくしいたヒーローや、柄のある背景を作りたいページのための道具です。覚えておいて、必要になったら使いましょう。

よくある質問

背景画像が表示されないときは?
いちばん多い原因は、url()の中に書いた画像のパス(置き場所)のまちがいです。画像ファイルの名前と場所をもう一度確かめましょう。開発者ツールのNetworkタブで、画像が読み込めているかも確認できます。
imgタグとbackground-imageはどう使い分けるの?
内容として見せたい写真(人物・作品など)はimgタグ、飾りとしての背景(模様・雰囲気づくりの写真)はbackground-imageが目安です。imgタグの画像には代替テキストがつけられるので、意味のある画像はimgタグにしましょう。