cssで背景画像をつける background-attachmentの違いを検証してみた


要素の背景に画像をつけたい時、background-imageを使います。

background-attachmentを使おうと思ったのですが、いまいち違いがわからなかったので自分で検証してみようと思います。

その前に、要素の背景に画像をつけたい時に使うプロパティを解説します
(プロパティ名:値① / 値②...のように書いています。)
  • background-image: url(‘画像のパス’)
  • background-repeat: repeat(初期値) / no-repeat
  • background-size:
    contain(画像全て収まるように) /                      cover(サイズ変えてもいいので要素全体を覆えるように※縦横比は変えず)/ px指定 /
    %指定
  • background-position: center / left / top / bottom / px指定 / %指定
上記のショートハンド 
  background: url() リピートするか? position / size;
※potisionとsizeの間には 「 / 」 (スラッシュ)が必要
   例) background: url() no-repeat center / contain;

ここからが本題です。スクロールした時の挙動をbackground-attachmentでつけでみようと思います。

background-attachmentは3つの値を取ることができます。

今回の結論

「background-attachmentの違いを区別する」には、
  1. 要素をスクロールした時の挙動
  2. ページ(表示領域orビューポート)をスクロールした時の挙動

の2つを意識します。

要素をスクロールした時ページをスクロールした時
scroll(初期値)動かない(要素に固定)動く
fixed動かない(要素に固定)動かない(表示領域に固定)
local動く動く
表示領域(ビューポート)とは、PC上で表示されるブラウザウインドウ全体のこと
それぞれを解説していきます。
①local ②fixed. ③scroll. の順で解説します。

今回は具体例として、以下のようなページを作っていきます。

実際には、テキストが入っている要素にcssのbackground-imageで背景画像をつけています。

localの場合

要素をスクロールした時ページをスクロールした時
local動く動く
テキストをスクロールすると、写真も一緒にスクロールされます。
テキストに写真がくっついている状態です。

fixedの場合

要素をスクロールした時ページをスクロールした時
fixed動かない(要素に固定)動かない(表示領域に固定)
テキストをスクロールしても、写真は固定されたままです。
さらに、ページをスクロールしても写真は上に行かずその場に留まってます。
写真がページ(表示領域)自体に固定されているような状態になっています。

scroll(初期値)の場合

要素をスクロールした時ページをスクロールした時
scroll(初期値)動かない(要素に固定)動く
テキストをスクロールしても、写真は固定されたままです。
ですが、ページをスクロールすると写真も一緒に上に行きます。

まとめ

「background-attachmentの違いを区別する」には、
  1. 要素をスクロールした時の挙動
  2. ページ(表示領域orビューポート)をスクロールした時の挙動

の2つを意識します。

要素をスクロールした時ページをスクロールした時
scroll(初期値)動かない(要素に固定)動く
fixed動かない(要素に固定)動かない(表示領域に固定)
local動く動く

おしゃれなデザインを作成できるよう、一緒にたくさん学びましょう!

以下は私がお世話になっているオンラインスクールです。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です