背景

background

背景を設定する

valuedescription
rgb(56, 189, 248)背景色を設定する
url("../img/image.png")画像を設定する
linear-gradient(hotpink, blue)グラデーションを設定する
no-repeat center/80% url("../img/image.png")中央寄せ、80%に縮小した画像を設定する

Demo

<div class="wrapper">
  <div class="box box-1" />
  <div class="box box-2" />
  <div class="box box-3" />
  <div class="box box-4" />
</div>
.box-1 {
  background: rgb(56, 189, 248);
}
.box-2 {
  background: no-repeat url("/monster.png");
}
.box-3 {
  background: linear-gradient(hotpink, blue);
}
.box-4 {
  background: no-repeat center/30% url("/monster.png");
}

.box {
  width: 100%;
  height: 100px;
  border-radius: 12px;
  border: 1px solid rgb(107, 107, 107);
}
.wrapper {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, 1fr);
}

概要

背景に関する以下のプロパティをまとめて指定するショートハンドです。

ただし実際には複雑な背景を指定する場合はほとんどなく、background: 色名;の形で背景色を指定する場合が多いでしょう。(background-colorでも良いですが、タイプ数が多いです。)

background-color背景色を設定する
background-image背景に画像やグラデーションを設定する
background-size背景画像の伸縮を指定する
background-position背景画像などの位置を設定する
background-clip背景の切り取り方を設定する
background-repeat背景画像などの繰り返しパターンを設定する
background-attachmentスクロールした場合の挙動を設定する
background-origin背景の描画領域を設定する

背景関連プロパティ

以下のプロパティは、個別に指定しても良いですし、まとめてbackgroundで指定しても構いません。

background-color

背景色を指定する。

hotpink
rgb(56, 189, 248)
rgba(56, 189, 248, 50%)
hsl(157, 56%, 40%)

background-image

背景画像またはグラデーションを指定する。背景画像は、url(/example.png)の形で URL を指定します。

画像のサイズと背景領域のサイズが合わない場合、デザインが崩れる可能性がある。 これは後述の background-sizebackground-repeatなどで調整する。

url(/maritozzo.png)
url(/monster_small.png)
linear-gradient(hotpink, blue)
radial-gradient(blue 10px, hotpink 50%)

グラデーションの指定方法についてはこちらをご覧ください。

background-size

背景画像の伸縮を指定します。containcoverの違いを押さえておけば良いでしょう。

contain
cover
30%
50px 30px

containのみ、background-repeat: no-repeat;を指定しています。

valuedescription
contain背景画像全体が領域内に収まるように配置されます。縦横比によっては余白が生じますが、必ず画像全体が表示されます。
cover領域全体が画像で覆われるように配置されます。余白が生じませんが、画像の一部が切り取られる場合があります。
50%数値が 1 つ指定された場合、画像の横幅になります
30px 10px数値が 2 つ指定された場合、1 つ目が画像の横幅、2 つ目が画像の高さになります
  • coverは画像の一部が入りきらなくても一定のサイズで表示したい場合に有効です。サムネイル画像などで用いられます。

background-position

背景画像の位置を指定します。

top
center
25% 70%
bottom 12px right 24px

※ 最初の 2 つはbackground-size: cover;、後半二つはbackground-repeat: no-repeatを指定しています。

valuedescription
center背景画像を中央に合わせます
top背景画像を、領域の上辺に合わせます
right背景画像を、領域の右辺に合わせます
bottom背景画像を、領域の下辺に合わせます
left背景画像を、領域の左辺に合わせます
25% 75%数値が 2 つ指定された場合、領域の左上からの X 座標・Y 座標になります。
bottom 12px right 24px各辺からの距離で指定します

background-clip

画像の切り取り方を指定します。 通常このプロパティを設定することはほぼありませんが、文字の塗りに写真やグラデーションを利用する際のテクニックでbackground-clip: text;が用いられます。

border-box
padding-box
content-box
MARITOZZO
valuedescription
border-box (default)枠線が背景の上に重なる形になります。
padding-box背景を枠線の内側までに制限します
content-box背景をpaddingの内側までに制限します
text背景画像を、テキストが重なっている部分に制限します

テキストで切り抜くテクニック場合は以下のスタイルを利用します。

TEXT
TEXT
<div class="wrapper">
  <div class="box-1 box">
    TEXT
  </div>
  <div class="box-2 box">
    TEXT
  </div>
</div>
.box-1 {
  background: url(/maritozzo.png) center;
  background-size: cover;

  /** @@ */
  background-clip: text;
  /* Chromeではベンダープレフィックスが必要 */
  -webkit-background-clip: text;
  /* 背景を見せるため、テキストは透明にする */
  color: transparent;
  /** /@@ */
}
.box-2 {
  background: linear-gradient(
    64.3deg,
    rgba(254, 122, 152, 0.81) 17.7%,
    rgba(255, 206, 134, 1) 64.7%,
    rgba(172, 253, 163, 0.64) 112.1%
  );

  /** @@ */
  background-clip: text;
  /* Chromeではベンダープレフィックスが必要 */
  -webkit-background-clip: text;
  /* 背景を見せるため、テキストは透明にする */
  color: transparent;
  /** /@@ */
}

.box {
  font-size: 96px;
  font-weight: 900;
  text-align: center;
  width: 100%;
  height: 150px;
}

.wrapper {
  display: flex;
}

background-repeat

背景画像の繰り返しを指定します。繰り返しをさせたくない場合は、no-repeatを指定します。

no-repeatのみ押さえておけば良いでしょう。

no-repeat
repeat
repeat-x
space
valuedescription
repeat (default)背景を繰り返します
no-repeat背景の繰り返しを行いません
repeat-xx 軸方向へのみ、繰り返しを行います
repeat-yy 軸方向へのみ、繰り返しを行います
space繰り返しを行いますが、端で画像が途中で切れないようにスペースで調整されます

background-attachment

スクロールした場合の挙動を設定する。

fixed
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
local
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
scroll
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<div class="wrapper">
  <div class="box box-1">
    <div class="inner">
      <div class="title">fixed</div>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
      magna
      aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
      consequat.
      Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
      sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    </div>
  </div>
  <div class="box box-2">
    <div class="inner">
      <div class="title">local</div>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
      magna
      aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
      consequat.
      Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
      sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    </div>
  </div>
  <div class="box box-3">
    <div class="inner">
      <div class="title">scroll</div>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
      magna
      aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
      consequat.
      Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
      sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    </div>
  </div>
</div>
.box-1 {
  background-attachment: fixed;
}
.box-2 {
  background-attachment: local;
}
.box-3 {
  background-attachment: scroll;
}

.box {
  background-image: url(/maritozzo.png);
  overflow-y: scroll;
  height: 9rem;
  width: 12rem;
  word-break: break-all;
  border-radius: 4px;
  border: 1px solid rgb(229, 231, 235);
  padding: 16px;
  text-align: center;
  font-family: monospace;
  font-size: 14px;
  color: white;
}
.inner {
  background: rgba(128, 128, 128, 0.498);
  backdrop-filter: blur(2px);
}
.wrapper {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.title {
  font-size: 18px;
  font-weight: 700;
}
valuedescription
fixed背景をビューポート(画面)に対して固定します
localスクロールに応じて背景も移動する
scrollスクロールしても背景は固定されたまま

関連

参照