linear-gradient()関数を利用すると、指定した色から色へ滑らかに変化する線形グラデーションを表現できます。この関数は、画像を扱えるプロパティとして指定する。
画像を扱えるプロパティすべてに指定できることに仕様上なってますが、Firefoxとか古いブラウザだと、background-image,backgroundプロパティにのみ適用されている点を頭の片隅に入れた方がいいです。
linear-gradient()関数の引数
●方向
グラデーションの方向は、ボックスの中心点を通る「グラデーションライン」の向きで決まる。このグラデーションラインの方向(終了点の方向)を角度かキーワードで指定します。
角度を使うときは、上方向を0度として、右方向が90度、下方向が180度のように時計回りで指定します。角度のです。
キーワードの場合は、「to キーワード」という書き方で、「top」「bottom」「left」「right」またはこれらの単語を組み合わせて指定する。
例えば、「to top」は下から上、「to right」は左から右へのグラデーションとなります。ただ「to top right」という形でキーワードを組み合わせたときは、必ずしも45度にはなりません。
グラデーションラインはボックスの対角線と直交する形で左上から右下へ設定されて、グラデーションの方向が決定されます。なので、ボックスサイズによりグラデーションの角度が変わります。
方向を省略すると、「to bottom」上から下を指定されたものとして扱います。
グラデーションの開始店と終了点は、ボックスの角を通る直線がグラデーションラインと直交する位置です。
●カラーストップ
色と値と位置を、半角スペースで区切って書きます。位置を指定したいとき「10px」「10%」とように実数値+単位か、「%値」で指定します。終了点は「100%」です。
サンプルコードの実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
<!DOCTYPE html> <head> <meta charset="utf-8"> <title>線上グラデーション</title> <style> div{ width:160px; height:120px; color:white; font-weight:bold; font-size:16px; margin:8px; } /* 以下のように指定すると、 開始点の色から終了点の色に変化する グラデーションです。 IOS6,Android4.3以前のブラウザで表示でグラデーションを 使うときは「-webkit-」を付けること。 */ .gra1{ background:-webkit-linear-gradient(blue,yellow); } .gra2{ background:-webkit-linear-gradient(bottom,blue,yellow); background:linear-gradient(to top,blue,yellow); } .gra3{ background:-webkit-linear-gradient(135deg,blue,yellow); } .gra4{ background:-webkit-linear-gradient(bottom,blue 0%,yellow 100%); background:linear-gradient(to top,blue 0%,yellow 100%); } /* 開始点と終了点の間にカラーストップを追加すると、 色を細かく変化させることができます。 */ .gra5{ background:-webkit-linear-gradient(right,blue 0%,yellow 10%,pink 30%,gold 50%, silver 70%,orange 100%); background:linear-gradient(to left,blue 0%,yellow 10%,pink 30%,gold 50%, silver 70%,orange 100%); } </style> </head> <body> <div class="gra1">グラデーション1</div> <div class="gra2">グラデーション2</div> <div class="gra3">グラデーション3</div> <div class="gra4">グラデーション4</div> <div class="gra5">グラデーション5</div> </body> </html> |