1. CSS

CSSで背景をグラデーションにする方法!linear-gradientについて解説

Share

CSSを使えば、画像を使わずに滑らかなグラデーション背景を作成できます。

この記事では、linear-gradient の基本から応用、実用例までを初心者向けに丁寧に解説します。

linear-gradientとは?

linear-gradient は、CSSで線形グラデーションを描くための関数です。画像ではなく「塗り」であるため、軽量かつ柔軟に背景デザインが可能です。

基本構文

background: linear-gradient(方向, 色1, 色2, ...);

例:

background: linear-gradient(to right, #ff7e5f, #feb47b);

この例では、左から右へピンクからオレンジへグラデーションします。

ちなみに、backgroundプロパティは複数のbackground系プロパティの一括指定プロパティで、上記は以下と同義です。

background-image: linear-gradient(to right, #ff7e5f, #feb47b);

方向を指定する

キーワードで指定

  • to right:左 → 右
  • to bottom:上 → 下
  • to left top:右下 → 左上
background: linear-gradient(to bottom right, #6a11cb, #2575fc);

角度で指定

background: linear-gradient(45deg, #00c9ff, #92fe9d);

角度は時計回りで指定され、0deg は上から下へのグラデーションです。

複数色のグラデーション

複数色を滑らかにつなげることも可能です。

background: linear-gradient(to right, #ff9a9e, #fad0c4, #fad0c4);

位置(パーセンテージ)を指定すると、色の切り替え位置を制御できます。

background: linear-gradient(to right, red 0%, yellow 50%, green 100%);

不透明度を変える

rgba()hsla() を使うと、透明なグラデーションが作れます。

background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(0,0,0,0.5));

背景画像の上に重ねて使用する際にも便利です。

グラデーションを繰り返す

repeating-linear-gradient を使うと、ストライプのような背景が作れます。

background: repeating-linear-gradient(
  45deg,
  #606dbc,
  #606dbc 10px,
  #465298 10px,
  #465298 20px
);

実用例:ボタンやヘッダーに

button {
  background: linear-gradient(to right, #ff416c, #ff4b2b);
  color: white;
  padding: 1em 2em;
  border: none;
  border-radius: 4px;
}

ボタンやセクションの背景に使えば、視覚的な印象を強めることができます。

背景画像とグラデーションを重ねる

background: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url('image.jpg');
background-size: cover;
background-position: center;

背景画像の上に半透明のグラデーションを重ねることで、文字を読みやすくできます。

グラデーションの中央が濁ってしまう場合は?

CSSではRGBモードで色が混ざり合うため、混ざり合ったところがグレーや茶色っぽく濁ってしまうことがあります。

解決・調整する方法を解説します。

CSSで中間色を明示的に指定する

background: linear-gradient(to right, #000000, #555555, #ffffff);

中央部分が濁ってしまうのを防ぐために自分で中間色を入れると、意図したグラデーションに近づきます。

複数のカラー停止点を使う

background: linear-gradient(to right, #000 0%, #333 25%, #666 50%, #999 75%, #fff 100%);

色の段階を細かく指定することで、グラデーションを手動で微調整できます。

画像化して使う(最終手段)

どうしてもデザインとCSSの差を埋められないときは、SVGやPNGで書き出したグラデーションを背景画像に使うのも手です。

まとめ

linear-gradient は、CSSだけで簡単にグラデーションが作れる便利な機能です。

また、repeating-linear-gradientはストライプのような簡単な模様をリピートさせて表示させたい時に便利です。

使い方はそこまで難しくないので、使えるようにしておきましょう。

参考リンク(MDN)