プログラムでHTMLで定義されている色の名前の一覧を取得する
HTMLでは色を指定するときにredやblue、lightblueなど名前を使うことができます。 これらの名前は
CSSカラーモジュール レベル3[1]に、拡張色名(Extended color keywords)として147個定義されています。
Microsoft.Ajax.Utilities.ColorSliceクラスを使用すると、C#やVBでこの147個の一覧とその色の16進数での値を取得することができます。
このクラスはNuGetでWebGreaseをインストールすると使えるようになります。
一覧を取得するプログラムは次の通りです。
foreach (KeyValuePair<string, string> color in Microsoft.Ajax.Utilities.ColorSlice.AllColorNames)
{
Console.WriteLine("Name=" + color.Key + " Value=" + color.Value);
}
■リスト1:C#版 HTMLの色の一覧の取得For Each color As KeyValuePair(Of String, String) In Microsoft.Ajax.Utilities.ColorSlice.AllColorNames
Console.WriteLine("Name=" + color.Key + " Value=" + color.Value)
Next
■リスト2:VB版 HTMLの色の一覧の取得色の名前から16進数の値を取得するには次のようにします。
string colorValue = Microsoft.Ajax.Utilities.ColorSlice.AllColorNames["lightblue"];
■リスト3:C#版 HTMLの色の名前から16進数の値を取得
Dim colorValue As String = Microsoft.Ajax.Utilities.ColorSlice.AllColorNames("lightblue")
■リスト4:VB版 HTMLの色の名前から16進数の値を取得なお、CSSで定義されている147個の名前はちょっとおかしなところがあって、別の名前が同じ色を指していることがあります。たとえば、grayとgreyは名前が違いますが同じ色です。
参考
- ^ http://www.w3.org/TR/css-color-3/