ページ全体に適用した背景画像の位置を固定したい

最終更新日

ページをスクロールしても背景画像の位置は固定しておきたいときに、「background-attachment: fixed;」を使用します。背景画像を固定すると、コンテンツの一部分が浮遊しているような印象になり、うまく使えば効果的な演出が可能です。このサンプルでは、背景画像を横方向にだけ繰り返すように「background-repeat」プロパティも使用しています。

<!DOCTYPE html>
<html lang="ja">
<head>
    <title>サンプル</title>
    <style>
      body{
        background-image: url(./images/bg.png);
        background-repeat: repeat-x;
        background-attachment: fixed;
      }
      .content{
        margin: 64px auto 0 auto;
        padding: 32px;
        max-width: 900px;
        border-radius: 16px;
        background:rgb(255, 255,255,0.5);
      }
    </style>
</head>
<body>
  <div class="content">
    <h1> CAFE 森の街角</h1>
    <h2>お誕生日・記念日プラン </h2>
    <p>お祝い用のスペシャルデザートをご用意してサプライズ演出をいたします。</p>
    <p>ホールケーキ 2000円 (4名様用~) <br>
    スペシャルいちごパフェ 500円/お一人<br>
    スペシャルデザート盛り合わせ 1500円(4名様用~) </p>
    <p>前日までにご予約ください。 </p>
    <h2>貸切パーティープラン </h2>
    <p>カフェの暖かい雰囲気を生かしたアットホームなパーティーを演出いたします。 <br> お子様メニューにも対応いたしますので、お誕生会や、 卒園パーティーなどにもご利用いただ
    けます。</p>
    <p>25名様~ <br>
    大人2500円・子供1500円~ </p>
    <p>詳しくは、お気軽にご相談ください。 </p>
  </div>
</body>
</html>
スクロールしても背景画像の位置は固定

背景プロパティを1行で書く方法

背景を設定するのに3つのプロパティ、background-image、background-repeat、background-attachmentを使用しました。backgroundショートハンドプロパティを使えばワンライナーで書くことができます。

body{
   background: url(../images/bg.png)repeat-x fixed;
}

なお、backgroundプロパティのように、複数のプロパティの値を一括で指定できるものを「ショートハンド」といいます。それに対して、background-imageなど、値をひとつだけ設定できるプロパティを「ロングハンド」と呼びます。