HTMLでは、色の表示は主に16進コードによって指定します。
主な色は、色名(英語)にふさわしい16進コードが定義され(当てはめられ)ており、色名を記述しても色を指定できます。
しかし、それ以外の文字を記述したとしても、下記の規則によって16進コードが決定されます。
[変換]をクリックすると、変換規則により計算した16進コードが表示されます。
表示された背景色bgColorをJavaScriptで取得したものが、[取得]した16進コードです。色名に16進コードが定義されている場合は、[取得]した16進コードと[変換]による16進コードは一致しません。
例えば、aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, yellow の基本16色です。
その他、beige, brown, chocolate, crimson, cyan, gold, indigo, ivory, khaki, lavender, magenta,
orange, orchid, pink, salmon, sienna, snow, tan, turquoise, violet などがあります。
一方 bengala, bronzered, burgundy, carmine, cherrypink, drab, fuchsin, leaf, mahogany,
malachite, mauve, muscat, prussian, scarlet, vermilion を入力してみて下さい。
これらは、[取得]した16進コードと[変換]による16進コードが一致します。表示色が色名に近く、予め定義されていたように見えますが、偶然近かったに過ぎません。色名英和参照。
文字列色コード変換規則
色名(文字列)は、BGCOLOR、FONT COLORなどの色についてのタグの値として記述した場合、16進2桁3組のコードに自動変換され、それに基づいた色が表示される。
(主な色は予め色名によって16進コードが定義されており、この規則より優先する)
- 色名のA〜F(及び数字)はそのまま,それ以外の文字は16進数の0に変換する。(半角英数字以外は0)
- 文字長による変換規則の違い
- 色名が3文字以下の場合:3文字まで後ろに0をつなぎ、3分割し、各組先頭の前に0を置く。
- 色名が4〜6文字の場合:6文字まで後ろに0をつなぎ、3分割し(1-2、3-4、5-6)、各組前2文字を生かす(1-2-3-4-5-6)。
- 色名が7文字以上の場合:3等分にできるように後ろに0をつなぎ、3分割する。各組前2文字を生かす。例外:全組の先頭文字が0のとき、各組次の文字から2文字を生かす。
この規則とJavaScriptのアルゴリズムは、試行錯誤のうえ発見・作成したものです。