CSS入門 | CSS3モジュール | CSS3円形グラデーション
CSS3円形グラデーション
CSS3では、グラデーション効果を線形だけでなく円形でも表現できる。
CSS3グラデーション(gradient)の対応バージョン
CSS3グラデーション(gradient)に対応している主要Webブラウザーのバージョンは次のとおりである。また、ブラウザー別にベンダープレフィックス(vendor prefix)を使ってこの機能に最初に対応したバージョンも併記している。
| プロパティ | ie | chrome | firefox | safari | opera |
|---|---|---|---|---|---|
| linear-gradient / repeating-linear-gradient | 10.0 | 26.0 / 10.0 -webkit- | 16.0 / 3.6 -moz- | 6.1 / 5.1 -webkit- | 12.1 / 11.1 -o- |
| radial-gradient / repeating-radial-gradient | 10.0 | 26.0 / 10.0 -webkit- | 16.0 / 3.6 -moz- | 6.1 / 5.1 -webkit- | 12.1 / 11.6 -o- |
円形グラデーション(radial gradient)
円形グラデーション(radial gradient)は、適用されたHTML要素に円形のグラデーション(gradient)効果を適用する。円形グラデーションを作成するには、少なくとも2つ以上の色指定点が必要である。
円形グラデーション(radial gradient)の構文は次のとおりである。
構文
background: radial-gradient(形 サイズ at 中心点, 色指定点1, 色指定点2, ...);
円形グラデーションは、既定では形がellipse(楕円)、サイズがfarthest-corner、中心座標がcenterに設定される。
<style>
#grad {
background: red;
background: -webkit-radial-gradient(red, orange, yellow, green, blue, indigo, purple);
background: -moz-radial-gradient(red, orange, yellow, green, blue, indigo, purple);
background: -o-radial-gradient(red, orange, yellow, green, blue, indigo, purple);
background: radial-gradient(red, orange, yellow, green, blue, indigo, purple);
}
</style>
上の例で最初に出てくるbackgroundプロパティは、radial-gradientプロパティに対応していないすべてのブラウザー向けのものである。最後に出てくるbackgroundプロパティは、CSS標準構文で書かれたコードである。このCSS標準構文のコードは、ベンダープレフィックス(vendor prefix)で書かれたコードがすべて出た後に記述しなければ、ベンダープレフィックス付きのコードが正常に動作する。
色指定点間の間隔調整
CSSを使うと、円形グラデーションで色指定点間の間隔を調整できる。
次の例は、色指定点間の間隔を異なる値に設定した円形グラデーションの例である。
<style>
#grad {
background: red;
background: -webkit-radial-gradient(red 5%, yellow 20%, orange 50%);
background: -moz-radial-gradient(red 5%, yellow 20%, orange 50%);
background: -o-radial-gradient(red 5%, yellow 20%, orange 50%);
background: radial-gradient(red 5%, yellow 20%, orange 50%);
}
</style>
円形グラデーションの形の設定
CSSを使うと、円形グラデーションの形を楕円ではなく円に設定することもできる。
次の例は、円形を持つ円形グラデーションの例である。
<style>
#grad {
background: red;
background: -webkit-radial-gradient(circle, red, yellow, orange);
background: -moz-radial-gradient(circle, red, yellow, orange);
background: -o-radial-gradient(circle, red, yellow, orange);
background: radial-gradient(circle, red, yellow, orange);
}
</style>
円形グラデーションのサイズ設定
CSSを使うと、円形グラデーションのサイズを設定できる。このとき、サイズを表すために使用できるパラメーターは次のとおりである。
- closest-side : 円形グラデーションのサイズが最も近い辺に届く大きさに設定される。
- farthest-side : 円形グラデーションのサイズが最も遠い辺に届く大きさに設定される。したがって、近い辺ではグラデーションの一部が画面を越える。
- closest-corner : 円形グラデーションのサイズが最も近い角に届く大きさに設定される。
- farthest-corner : 円形グラデーションのサイズが最も遠い角に届く大きさに設定される。このサイズが既定値であり、近い角ではグラデーションの一部が画面を越える。
次の例は、さまざまなサイズに調整した円形グラデーションの例である。
<style>
#grad_01 { background: radial-gradient(closest-side at 35% 35%, red, yellow, orange); }
#grad_02 { background: radial-gradient(farthest-side at 35% 35%, red, yellow, orange); }
#grad_03 { background: radial-gradient(closest-corner at 35% 35%, red, yellow, orange); }
#grad_04 { background: radial-gradient(farthest-corner at 35% 35%, red, yellow, orange); }
</style>
repeating-radial-gradient()メソッド
repeating-radial-gradient()メソッドは、円形グラデーション効果が繰り返し続くように設定する。
次の例は、繰り返される円形グラデーションの例である。
<style>
#grad {
background: red;
background: -webkit-repeating-radial-gradient(red, white 10%, blue 20%);
background: -moz-repeating-radial-gradient(red, white 10%, blue 20%);
background: -o-repeating-radial-gradient(red, white 10%, blue 20%);
background: repeating-radial-gradient(red, white 10%, blue 20%);
}
</style>