Unformed Building

colorプロパティの影響範囲

公開:
更新:

パーマリンク

とりあえず仕様を見てみます。

This property describes the foreground color of an element’s text content.

Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification - 14.1 Foreground color: the 'color' property

This property describes the foreground color of an element's text content. In addition it is used to provide a potential indirect value (currentColor) for any other properties that accept color values. If the ‘currentColor’ keyword is set on the ‘color’ property itself, it is treated as ‘color: inherit’.

CSS Color Module Level 3 - 3.1. Foreground color: the ‘color’ property

Color Module Level 3の方ではcurrentColorの説明が入っていますが基本は同じで、このプロパティは前景色を指定するプロパティであると書かれています。

colorプロパティの影響を受ける例

border-*-color

ボーダーを指定する際、ボーダーカラーが未指定の場合はcolorプロパティで指定した色がボーダーカラーの計算済みスタイルとして使用されます。

CSS 2.1の「8.5.2 Border color」において、border-*-colorの初期値はthe value of the ‘color’ propertyとなっています。
また、次のようにも書かれています。

If an element’s border color is not specified with a border property, user agents must use the value of the element’s ‘color’ property as the computed value for the border color.

ではBorders Module Level 3ではどうなのかとCSS Backgrounds and Borders Module Level 3の「4.1. Line Colors: the ‘border-color’ properties」を見ると、border-*-colorの初期値はcurrentColorであると書かれています。
currentColorの色はcolorプロパティによって決められるので、初期のボーダーカラーはやはりcolorプロパティで指定したものとなります。

また、outline-colorも同様です。

<shadow>の色

box-shadow, text-shadowプロパティの値に使用される形式で、構文は次のようになっています。

<shadow> = inset? && [ <length>{2,4} && <color>? ]

構文を見ると分かる通り、色の指定は各種<length>と一緒に指定する必要がありますが、色の指定自体は任意です。
未指定だとどうなるのか。それは<shadow>の説明文に書かれています。

The color is the color of the shadow. If the color is absent, the used color is taken from the ‘color’ property.

色の指定がない場合はcolorプロパティの指定を使うよ、ということです。

その他

など、初期値がcurrentColorのもの。

まだあるかもしれません。
とりあえずcolorプロパティによって指定された色は文字色以外にも影響するということは覚えておきたいですね。