CSSで背景画像を固定する方法

CSSで背景画像を固定する方法
HTML/CSS学習におすすめの書籍

Amazonの読み放題サービスKindle Unlimited無料体験キャンペーン実施中!

Amazon Kindle Unlimited 公式

ウェブサイトのデザインにおいて、背景画像を固定することで、ページをスクロールしても背景が動かない効果を持たせることができます。今回は、2つの異なる方法で背景を固定するテクニックを紹介します。

方法1: background-attachment: fixed; を使う

background-attachment: fixed; は背景を固定するための最もシンプルな方法です。以下はその基本的なコードです。

CSS
.background {
    background-image: url(../img/background.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    background-attachment: fixed;
}

メリット

  • 簡単に実装可能:短いコードで背景の固定が可能です。
  • 軽量でパフォーマンスに優れる:余分なスタイル設定が不要です。

デメリット

  • モバイル対応の問題:一部のモバイルブラウザでは、この方法が正しく動作しないことがあります。

方法2: ::before 擬似要素を使った背景固定

もう一つの方法は、::before 擬似要素と position: fixed; を使う方法です。これにより、より細かい調整が可能になります。

CSS
.background::before {
    position: fixed;
    background-image: url(../img/background.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    min-height: 100vh;
    width: 100%;
    z-index: -1;
    content: '';
    top: 0;
    left: 0;
}

説明

  • position: fixed; を指定することで、スクロール時にも背景画像が固定されます。
  • z-index: -1; により、背景画像がコンテンツの背後に表示されます。
  • ::before 擬似要素を使うことで、既存のHTML構造に影響を与えず、背景を自由にカスタマイズ可能です。

背景画像を薄くするテクニック

背景画像に少し透明感を持たせたい場合は、次のコードを追加します。

CSS
background-color: rgba(255, 255, 255, 0.8);
background-blend-mode: color;
  • background-color: rgba(255, 255, 255, 0.8);
    白色を80%の透明度で背景に重ねることで、画像を少し薄く表示させます。
  • background-blend-mode: color;
    背景画像と色をブレンドすることで、背景がコンテンツに自然に溶け込む効果を出せます。

まとめ

背景画像を固定するには、background-attachment: fixed; を使う簡単な方法と、::before 擬似要素を使ってより柔軟にコントロールする方法があります。目的やデザインに応じて、これらを使い分けることで、ページ全体に統一感を持たせ、視覚的に魅力的なデザインを作り出すことができます。ぜひ、これらの方法を自分のウェブサイトに取り入れてみてください。

制作のご相談・ご依頼はこちらから!

Author

WARACRO(ワラクロ)

2018年に起業し、Webデザイナー・WebディレクターとしてWordPress案件を中心にWeb制作のお仕事をしています。
このブログでは、Webサイト制作に関する情報をお届けしています。

Webデザイン学習におすすめの講座
To Top