[4] [[CSS]] の [CODE(CSS)@en[[[rgba()]]]] [[関数]]は、 [[RGB値]]と[[α値]]を指定します。 * 仕様書 - [2] [CITE@en[CSS Color Module Level 3]] ([TIME[2011-06-07 21:54:38 +09:00]] 版) * [CODE(CSS)@en[rgba()]] 関数 [5] [CODE(CSS)@en[[[rgba()]]]] [[関数]]は、 - [6] [CODE(CSS)@en[rgba(]] - [7] 3つの[[整数値]]または3つの[[百分率値]]を[[読点]]で区切ったもの - [8] [[読点]] - [9] [CODE(CSS)@en[[[]]]] - [10] [CODE(CSS)[[[)]]]] ... で構成されます。[[整数値]]や[[百分率値]]や [CODE(CSS)@en[[[]]]] の前後には[[空白]]を入れることができます。 [SRC[>>2]] ;; [11] [[CSS3]] [SRC[>>2]] はこの構文の説明が若干曖昧です。 [12] 最初の3つの[[数値]]は [[RGB]] を表すものであり、 [CODE(CSS)@en[[[rgb()]]]] [[関数]]と同じです。 [13] 最後の[[数値]] ([CODE(CSS)@en[[[]]]]) は[[α値]]、 つまり[[色]]の[RUBYB[[[不透明度]]]@en[opacity]]を表します。 [SRC[>>2]] * 色空間 [14] [[装置]]の[[色域]]に応じた[[くりぬき]]を [CODE(CSS)@en[[[rgb()]]]] [[関数]]同様に行わなければ[['''なりません''']] [SRC[>>2]]。 [15] [CODE(CSS)@en[[[]]]] についても 0 から 1 までの値への[[くりぬき]]が行われます。 * 構文解析 [3] [[Firefox]] 3 では、 [VAR[a]] の値が 1 以上なら[[構文解析]]時に [CODE(CSS)@en[[[rgb]]()]] に置き換えられ、 0 以下なら[[構文解析]]時に 0 に置き換えられます。 [22] [[RGBA値]]に対応していない[[利用者エージェント]]は [[CSS]] の[[先方互換構文解析規則]]に従って未対応の値であるとして扱うべきであって、 [[α値]]だけを無視してはなりません。 [SRC[>>2]] ;; [23] これって、 [CODE(CSS)@en[[[]]]] が 1 (完全に[[不透明]]) のときだけ無視しなくて、それ以外は無視する、という実装でも良いのでしょうかね? * 例 - [16] [CODE(CSS)@en[rgba(255,0,0,1)]] - [17] [CODE(CSS)@en[rgba(100%,0%,0%,1)]] [18] [CODE(CSS)@en[[[]]]] の 1 は完全に[[不透明]]であることを表しており、 従ってこれらは [CODE(CSS)[rgb(255,0,0)]] や [CODE(CSS)[rgb(100%,0%,0%)]] と[[等価]]であり、いずれも[[不透明]]な[[赤]]を表しています。 [SRC[>>2]] - [20] [CODE(CSS)[rgba(0,0,255,0.5)]] ;; [[半透明]]の[[青]] [SRC[>>2]] - [21] [CODE(CSS)[rgba(100%, 50%, 0%, 0.1)]] ;; ほとんど[[透明]]な[[オレンジ]] [SRC[>>2]] * 関連 [19] [[α値]]を含まない場合は [CODE(CSS)@en[[['''#'''[VAR[rrggbb]]]]]] のような[[十六進数]]表現が使えますが、 [[α値]]付きの場合はそのような表現はありません。 [[CSS]] 以外では [CODE[[['''#'''[VAR[rrggbbaa]]]]]] という表記方法が行われることもありますが、 [[CSS]] では認められていません。 * メモ [1] [CITE[Opacity, RGBA and compromise - CSS3 . Info]] ([CODE[2007-06-04 19:45:58 +09:00]] 版) ([[名無しさん]] [WEAK[2007-06-04 10:47:14 +00:00]])