おふとんの人ホームページ教室 → 色の設定で必要な16進数

16進数について

25.デザインを考えるの配色では、スタイルシートで色を指定するのに、16進数を覚える必要があると述べました。ここでは、16進数について詳しく述べたいと思います。

進数とは

そもそも進数とは、その数字で桁が上がる数字のことを言います。10進数であれば、次の例のように、10になれば一桁上がります。

0 → 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10

16進数であれば、16になれば一桁上がるわけですが、16進数で数字を数えていった場合、10を超えた時点で「10」と書いてしまったら、一桁上がったことになってしまうので、次の例のように、10は「a」、11は「b」とアルファベットで表現します。よって15は「f」で、16になったら「10」となります。

0 → 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → a → b → c → d → e → f → 10

なぜ16進数なのか?

なぜ16進数なのかを話す前に、2進数について話さなければなりません。2進数は、上の条件に従うと、次の例に示すように、2になると一桁上がります。

0 → 1 → 10 → 11 → 100 → 101 → 110 → 111 → 1000 → 1001 → 1010

2進数をもっと詳しく考えていきたいと思います。2進数は2で一桁上がるので、「0」か「1」の世界です。この「0」か「1」の世界は、実はコンピュータの世界と同じであると、お気づきでしょうか?

そもそもコンピュータの内部では、簡単に言うと、電気が流れたときが「0」、電気が流れないときが「1」として表現されています。つまり、電気が「ON」か「OFF」の世界なのです。

電気ON=0電気OFF=1

では、2進数1桁で表現できる組み合わせは「0」と「1」ですから、2進数1桁で2通りの表現ができることがわかります。では、2桁ではどうでしょうか?。2桁では、「00」「01」「10」「11」の4通りです。数学的には、22=4通りと現せます。では、3桁では、23=8通り、4桁では24=16通りの表見ができることがわかります。

このような2進数の桁の単位のことを、コンピュータの世界では、ビットと言います。つまり、2進数1桁は1ビット、4桁では4ビットです。ちなみに、8ビットを1バイトと言い、HDDなどの記録容量の単位になっています。

話しを戻しまして、2進数4桁は、16通りの表現ができると書きましたが、16進数の1桁も16通りの表現ができます。つまり、2進数4桁が16進数1桁に相当し、2進数と16進数は親和性が高く、換算がしやすいのです。ということは、コンピュータの内部では、2進数で動いているわけですが、それを実際に記述するには桁数が多くなったり、0と1で見にくかったりするので、親和性の高い16進数で記述していこうと考えたのです。


2進数、10進数、16進数の相対関係

2進数10進数16進数2進数10進数16進数2進数10進数16進数
0001000016101000003220
1111000117111000013321
10221001018121000103422
11331001119131000113523
100441010020141001003624
101551010121151001013725
110661011022161001103826
111771011123171001113927
1000881100024181010004028
1001991100125191010014129
101010a11010261a101010422a
101111b11011271b101011432b
110012c11100281c101100442c
110113d11101291d101101452d
111014e11110301e101110462e
111115f11111311f101111472f

16進数を使った色の設定

Webページと、スタイルシートを結びつける方法については、「28.スタイルシートの制作と設置」で述べています。ここでは、25.デザインを考えるの「スタイルシートについて」で述べた設定例を使って、16進数を使っての色の設定について、丁寧に説明したいと思います。

● スタイルシートの設定例1

body {

  background-color: #aabbcc;

  color: #404040;

}

このスタイルシートの設定では、HTMLソースの中で、bodyタグで挟まれた領域では、background-color、つまり背景色は「#aabbcc」にしなさいという命令です。また、colorでは、文字の色を「#404040」にしなさいという命令です。

ここで出てくる「aabbcc」や「404040」は6桁の16進数で、この値をいろいろと変えることによって、色を変えることができます。では、この6桁の16進数が、どのような意味を持っているのでしょうか?。

光の三原色

光の三原色という言葉を聞いたことはございますでしょうか?。つまり、光の色は「赤」「緑」「青」の3つの光の組み合わせで表現できるということです。これらの色の英語読みの頭文字「Red」「Green」「Blue」を取って、「RGB」と表現することもあります。

例えば、Rを100%、Gを0%、Bを0%出す光源があったとすると、その光源が出す光は赤色に見え、Rを0%、Gを0%、Bを100%出す光源であれば、青に見えます。色は、組み合わせることもできるので、例えば、赤100%、緑100%、青0%であれば、黄色に見えます。そして、すべての色が100%であれば白になります。

このように、RGBのそれぞれの光を何%ずつ明るくするかによって、色が決まってきます。次の表に、代表的な色を載せておきますので、目安にして下さい。

100%0%0%
0%100%0%
0%0%100%
100%100%0%
100%0%100%
0%100%100% 水色
100%50%0% だいだい
50%100%0% 黄緑
50%0%100% 青紫
0%0%0%
25%25%25% 濃い灰色
50%50%50% 灰色
75%75%75% 薄い灰色
100%100%100%□ 白

16進数で色を表現

実は、上のスタイルシートの設定例で示した3桁の16進数は、このRGBを表します。つまり、「#aabbcc」を例に取れば、「#」は16進数ですよという意味で、次の6桁を2桁ずつ切って、それぞれRGBに対応させています。ですので、最初の「aa」が赤R、次の「bb」が緑G、そして最後の「cc」が青Gという具合です。

16進数2桁では、一番大きな数字は「ff」です。

上の例では、赤「aa」、緑「bb」、青「cc」と設定されていますが、仮に、16進数2桁の最大値「ff」と設定されていたとします。

この「ff」が何%を表しているかと言いますと、「ff」が100%です。反対に、「00」が0%です。つまり、ffは10進数で255ですので、赤、緑、青それぞれ1色当たり256通りの色で表現できることになります。それが3色ですので、2563=1,677,216色の表現が可能であることになります。

「ff」は、2進数で16桁(16ビット)です。Windowsの画面のプロパティで、画面の色を設定できますが、その設定で「中(16ビット)」という設定にすると、画面を1,677,216色で表現するという設定になります。

話しを戻しまして、もうお気づきだと思いますが、仮にスタイルシートを次のように変更したとします。

● スタイルシートの設定例2

body {

  background: #cccccc;

  color: #ff0000;

}

そうすると、次の表示結果に示すように、bodyタグで挟まれた領域、つまりWebページ全体の背景色が灰色になり、文字の色が赤色になります。

● スタイルシートの設定例の表示結果

テスト表示

このように、色を16進数で表現されたものを、カラーコードと言います。

この表示結果は、背景色と文字色の関係として、とても見づらいと思います。このように、16進数6桁で色を設定して、見やすい配色をしていかなければなりません。次のページでは、文字色と背景色の組み合わせで、読みやすい組み合わせの考え方について、考えたいと思います。


A8広告

16進数のアルファベット表記

16進数では、10から15を、aからfのアルファベットで表記しています。私は、たまたま小文字を使っていますが、大文字でも同じです。ただし、小文字と大文字を混在させるのではなく、どちらかで統一しておいた方が、良いと思います。

●小文字で指定

color: #aabbcc;

●大文字で指定

color: #AABBCC;


カラーコードとカラー名の関係

スタイルシートで色を指定する場合、上記のように16進数で指定する場合と、カラー名を直接入力する場合がございます。次の二つの例は、表示結果が同じになります。

●16進数で指定

color: #ff0000;

●カラー名で指定

color: red;

カラーコードとカラー名の関係」で、カラー名とカラーコードの相対関係をまとめましたので、参考になればと思います。