JINMUSOFTWARE

Repeating-Linear-Gradient()を使用してグラデーションを繰り返し表示する

グラデーションの繰り返しの基本

repeating-linear-gradient() は、線形グラデーションを繰り返して領域を埋め尽くす画像を生成します。

2色以上の指定が必要です。同色を2つ指定すると一色になります。

記述にミスがあると無視されます。

gra1

gra11

gra12

gra13

background-image: repeating-linear-gradient(90deg, red, blue);
background-image: repeating-linear-gradient(90deg, red, blue 50%);
background-image: repeating-linear-gradient(90deg, red, blue 100px);
background-image: repeating-linear-gradient(-90deg, blue, red 100px);

1番目の例は、”repeating-“を付加した意味がありませんね。横幅100%の指定になっているので繰り返し数が1です。linear-gradient()を使用しても同じ結果ですね。

2番目の例は、50%までの描画指定です。2回繰り返されます。1repのサイズは、”%”指定ですので親サイズの影響を受けます。

3番目の例は、100pxでstopしています。グラデーションは100px単位で繰り返されます。親コンテナに対して半端なサイズであれば見切れます。

4番目の例は、角度が-90degを指定しています。回転方向によって、スクロール方向が変わるのでその参考です。例3の同じになるよう、色指定が反対になっています。

deg指定

topから右回りです。

角度[deg]向き角度[deg]向き
0-0
45右上-45左上
90-90
135右下-135左下
180-180
225左下-225右下
270-270
315左上-315右上
360-360
角度と方向

縞模様(しまもよう)

縞模様と相性がいいですね。繰り返しパターンを1rep指定すれば全体に表示できます。

gra21 0deg

background-image: repeating-linear-gradient(0deg, red, red 5px, blue 5px, blue 10px);
background-image: repeating-linear-gradient(0deg, red 0px 5px, blue 5px 10px);

gra22 -45deg

background-image: repeating-linear-gradient(-45deg, red, red 5px, blue 5px, blue 10px);
background-image: repeating-linear-gradient(-45deg, red 0px 5px, blue 5px 10px);

繰り返されるもの

repeating-linear-gradient; は、グラデーションが繰り返されます。background-size; とは違います。

背景が繰り返されるのではなく、グラデーションが繰り返されます。

gra2

height: 100px;
width: 100px;
background-image: linear-gradient(-45deg, red, rgb(170, 87, 87) 25px);

gra3 gra2の繰り返し

height: 100px;
background-image: repeating-linear-gradient(-45deg, red, rgb(170, 87, 87) 25px);

gra32 gra2の繰り返し

height: 100px;
background-size: 100px 100px;
background-image: linear-gradient(-45deg, red, rgb(170, 87, 87) 25px);

角度と横幅の注意

もし、背景画像のコンテナの幅が可変する可能性があるのならば、傾きをキーワードで指定した場合、見た目の傾きが変わることを覚えておく必要があります。キーワード指定のグラデーションの方向はアスペクト比に影響されます。

また、中間点の指定で%を指定した場合も、コンテナサイズの変化に影響を受けます。(gra11など)

gra51 to top right

gra5 45deg

background-image: repeating-linear-gradient(to top right, red, rgb(170, 87, 87) 25px);

gra4 0deg

gra6 to right

background-image: repeating-linear-gradient(to right, red 0, yellow 10px, red 20px);

垂直や水平の指定は影響を受けませんね。

クロスな模様

横と縦を合体させてクロスな模様を表現

gra721

gra722

適当に合体する。

gra72

gra723

gra724

background-image:
repeating-linear-gradient(0deg, rgba(100, 255, 255, 0.2) 0 20px, rgba(66, 213, 42, 0.5) 20px 40px),
repeating-linear-gradient(90deg, rgba(243, 201, 140, 0.6) 0 20px, rgba(255, 255, 255, 1) 20px 40px);

並び順、透過率に注意しながら調整しましょう。

ちょっと難しいですね。色を薄目にして重ねるのがコツかな?

~おわり~