linear-gradient で背景色のグラデーションと分割表示

背景をCSSでグラデーション表示させたい、2色を分割して表示させたいというときに使えるのが background プロパティの linear-gradient です。

背景のグラデーション

CSSでグラデーション表示したい場合は background: linear-gradient(); を使用します。色が変化する方向角度、色と位置を指定してスタイルを設定します。

2色のグラデーション

CSS
background: linear-gradient(to right, green 0%, blue 100%);
linear-gradient(色が変化する方向角度, 色 位置(グラデーション開始の色と位置), 色 位置(終了の色と位置))

以下は上記コードを実装したものです。グリーンからブルーの2色のグラデーションです。

表示例

2色の色を0%〜100%で指定する場合数字を省略しても同様の表示になるので、以下のような記述でもOK。

CSS
background: linear-gradient(to right, green, blue);

方向角度は以下のように指定します。方向角度を省略した場合、上から下にかけてのグラデーションになります。

  • 【0deg】もしくは【to top】 ↑(下から上)
  • 【90deg】もしくは【to right】 →(左から右)
  • 【180deg】もしくは【to bottom】 ↓(上から下)
  • 【270deg】もしくは【to left】 ←(右から左)

任意の角度を指定することができるので斜めのグラデーションもできます。

CSS
background: linear-gradient(135deg, green, blue);

表示例

3色のグラデーション

色は3色以上でも設定できます。

CSS
background: linear-gradient(135deg, aqua, skyblue, blue);

表示例

画像の上にグラデーションを重ねる

画像とグラデーションをミックスさせることもできます。

CSS
background: linear-gradient(90deg, rgb(255 41 211 / 20%), rgb(255 224 0 / 40%)) , url(../images/sampleimg.jpg);

今回は画像の上に色を重ねます。後に記述した方が下に配置されるため、画像はグラデーションの後に記述します。

使用する画像はこちら。

スタイルを当てる前の画像

linear-gradientを使ってグラデーションスタイルを当てたものがこちら。画像に色が重ねられました。

背景色をはっきり分割させる

グラデーションではなく、はっきりと背景色を分割させたい場合は分けたい「色 位置」の部分を設定します。

CSS
background: linear-gradient(90deg, green 0%, green 50%, blue 50%, blue 100%);

表示例

0%がグリーン、50%もグリーンにすればグラデーションにはなりません。50%〜100%も同様です。px単位も使用できますが、%指定にしておけばレスポンシブ対応にできます。

参照: linear-gradient() | MDN

カテゴリー : HTML-CSS

index