/
642.txt
86 lines (59 loc) · 4.09 KB
/
642.txt
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
[2] [[CSS]] の[[キーワード]] [DFN[[CODE(CSS)@en['[[currentColor]]']]]] は、
その[[要素]]の[[色]] ([CODE(CSS)@en['[[color]]']] [[特性]]の値) を表します。
* 仕様書
[REFS[
- [1] [CITE@en[CSS Color Module Level 3]] ([TIME[2011-06-07 21:54:38 +09:00]] 版) <http://www.w3.org/TR/2011/REC-css3-color-20110607/#currentcolor>
- [25] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-11-16 20:26:18 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#2dcontext>
]REFS]
* 意味
[6] [CODE(CSS)@en['[[currentColor]]']] は、 [CODE(CSS)@en['[[color]]']] [[特性]]の値を表します
[SRC[>>1]]。
* 算出値
[7] [CODE(CSS)@en['[[currentColor]]']] の[[算出値]]は、 [CODE(CSS)@en['[[color]]']] [[特性]]の[[算出値]]です
[SRC[>>1]]。
* [CODE(CSS)@en['color']] における扱い
[8] [CODE(CSS)@en['[[color]]: [[currentColor]]']] は [CODE(CSS)@en['[[color]]: [[inherit]]']]
として扱います [SRC[>>1]]。
[9] [[PR]] 直前の [[WD]] <http://www.w3.org/TR/2008/WD-css3-color-20080721/#currentColor-def> までは
[[構文解析]]の時点で置き換えられると明記されていましたが、なぜか次の [[PR]]
<http://www.w3.org/TR/2010/PR-css3-color-20101028/#currentColor-def>
では削られています。
[23] [CITE@en[Re: '''['''css3-color''']''' currentColor parsing issues]] ([[L. David Baron]] 著, [TIME[2008-07-26 02:17:13 +09:00]] 版) <http://lists.w3.org/Archives/Public/www-style/2008Jul/0540.html>
これによると、 [[CSSOM]] には [CODE(CSS)@en['[[currentColor]]']] のまま現れるべきであり[[構文解析]]時に置き換えるというのは正しくないようです。
* [CODE(HTMLe)@en[canvas]] での扱い
[26] [CODE(DOMi)@en[[[CanvasRenderingContext2D]]]] では、
- [27] [[レンダリング文脈]]の[[文脈ビットマップ・モード]]が[[固定]]で、 [CODE(HTMLe)@en[[[canvas]]]]
[[要素]]が[[レンダリングされている]]なら、[[色]]が指定された時点 [WEAK[(使われる時点ではなく。)]]
における [CODE(HTMLe)@en[[[canvas]]]] [[要素]]の [CODE(CSS)@en['[[color]]']] [[特性]]の[[算出値]]を表します。 [SRC[>>25]]
- [28] それ以外の場合、[[完全不透明黒]]を表します。 [SRC[>>25]]
[29] [CODE(DOMi)@en[[[CanvasGradient]]]] の [CODE(DOMm)@en[[[addColorStop]]]] では、
[[完全不透明黒]]を表します。 [SRC[>>25]]
* 歴史
** 前史
[3] [[CSS1]] と [[CSS2]] では [CODE(CSS)@en['[[border-color]]']] [[特性]]の[[初期値]]を
「[CODE(CSS)@en['[[color]]']] [[特性値]]」と文章で説明していました。 [SRC[>>1]]
** SVG
[4] [[SVG 1.0]] で [CODE(CSS)@en['[[fill]]']], [CODE(CSS)@en['[[stroke]]']],
[CODE(CSS)@en['[[stop-color]]']], [CODE(CSS)@en['[[flood-color]]']],
[CODE(CSS)@en['[[lighting-color]]']] で使える値として [CODE(CSS)@en['[[currentColor]]']]
が導入されました。 [SRC[>>1]]
** CSS3
[5] [[CSS3]] で [CODE(CSS)@en['[[currentColor]]']] は [CODE(CSS)@en[[[<color>]]]]
が使える場所すべてで使えるように拡張されました。 [SRC[>>1]]
* 実装
[22]
2003年の [[CSS 3]] [[色]][[モジュール]] [[CR]] によれば
[CODE(CSS)@en[[[currentColor]]]] が [CODE(CSS)@en[[[color]]]]
に指定されたら[[構文解析]]の時点で [CODE(CSS)@en[[[inherit]]]]
に置き換えなければなりませんが、 [[Firefox]] 2
はそれをせず、なぜか[[黒]][[色]]
([[初期値]]?) で[[レンダリング]]します。
[CODE(CSS)@en[[[background-color]]]] など他の特性では正常なようです。
* メモ
[24] [[SVG]] 由来のため、 [[CSS]] なのに [[camelCase]] になっているようです。
[30] [CITE@en[''''''[''''''css-color'''''']'''''' currentColor, inheritance, bikeshedding]]
( ([[fantasai]] 著, [TIME[2014-08-19 05:20:53 +09:00]] 版))
<http://lists.w3.org/Archives/Public/www-style/2014Aug/0263.html>
[10] [CITE@en[Revert behavior change of 2D context "currentColor" keyword]]
([[junov]]著, [TIME[2016-07-07 05:05:39 +09:00]])
<https://github.com/whatwg/html/commit/c836c70ccff790f82b8a22f3f1897b3bcdcbd870>