CSS3のRGBA・HSL・HSLAカラー値の使い方を徹底解説
CSS3では、従来のカラーネームや16進数(HEX)に加えて、より柔軟な色指定の方法が複数導入されました。その代表が RGBA、HSL、HSLA の3つのカラー値です。それぞれの特徴と使い方を、実際のコード例とともに詳しく見ていきましょう。
RGBAカラー値とは
RGBA は「Red(赤)」「Green(緑)」「Blue(青)」「Alpha(アルファ)」の4つの要素で構成される色指定方法です。RGBはそれぞれ0〜255の数値で色の強さを表し、Alphaは色の不透明度(透明度)を指定します。
Alphaの値は 0.0〜1.0 の範囲で指定します。1.0が完全な不透明(透過なし)、0.0が完全な透明を意味します。例えば0.5なら半透明になります。このAlphaパラメータによって、同じ色でも濃淡や透け具合を細かくコントロールできるのが大きな特徴です。
下の画像は、RGBAのAlpha値を変えたときの不透明度の違いを示したものです。

RGBAのサンプルコード
それでは、RGBAカラー値を使った具体的な例を見てみましょう。同じ背景色でも、Alpha値を変えるだけで表示がどう変わるか確認できます。
<!DOCTYPE html>
<html>
<head>
<style>
#demo1 {background-color:rgba(108,111,35,0.6);}
#demo2 {background-color:rgba(108,111,35,0.5);}
#demo3 {background-color:rgba(108,111,35,0.4);}
#demo4 {background-color:rgba(108,111,35,0.3);}
#demo5 {background-color:rgba(108,111,35,0.2);}
#demo6 {background-color:rgba(108,111,35,0.1);}
</style>
</head>
<body>
<h1>Cricketers</h1>
<p id="demo1">David Warner</p>
<p id="demo2">Steve Smith</p>
<p id="demo3">Mark Waugh</p>
<p id="demo4">Steve Waugh</p>
<p id="demo5">David Johnson</p>
<p id="demo6">Andy Bichel</p>
</body>
</html>実行結果

上記のコードでは、すべての段落に同じRGB値(108,111,35)を指定していますが、Alpha値が0.6から0.1まで段階的に変化しているため、背景色の濃さが徐々に薄くなっていきます。
HSLカラー値とは
HSL は「Hue(色相)」「Saturation(彩度)」「Lightness(輝度)」の3つの要素で色を指定する方法です。人間の色の感覚に近い形で直感的に色を扱えるのが特徴です。
- Hue(色相):0〜360の角度で色を表します。0(または360)が赤、120が緑、240が青に対応します。
- Saturation(彩度):パーセンテージ(%)で指定し、0%がグレー、100%が最も鮮やかな色になります。
- Lightness(輝度):パーセンテージ(%)で指定し、0%が黒、50%が標準、100%が白になります。
HSLのサンプルコード
次に、HSLカラー値を使った例を見てみましょう。色相や輝度を変えることで、どのように表示が変化するか確認できます。
<!DOCTYPE html>
<html>
<head>
<style>
#demo1 {background-color: hsl(150, 100%, 50%);}
#demo2 {background-color: hsl(150, 100%, 50%);}
#demo3 {background-color: hsl(140, 100%, 40%);}
#demo4 {background-color: hsl(120, 100%, 40%);}
#demo5 {background-color: hsl(120, 100%, 30%);}
#demo6 {background-color:rgba(108,111,35,0.6);}
</style>
</head>
<body>
<h1>Cricketers</h1>
<p id="demo1">David Warner</p>
<p id="demo2">Steve Smith</p>
<p id="demo3">Mark Waugh</p>
<p id="demo4">Steve Waugh</p>
<p id="demo5">David Johnson</p>
<p id="demo6">Andy Bichel</p>
</body>
</html>実行結果

この例では、色相(Hue)を150から120へ、輝度(Lightness)を50%から30%へと変化させており、緑系の色合いが徐々に暗く深くなっていく様子がわかります。
HSLAカラー値とは
HSLA は、HSLにAlpha(不透明度)を加えた4つの要素で色を指定する方法です。「Hue(色相)」「Saturation(彩度)」「Lightness(輝度)」「Alpha(アルファ)」の順で記述します。
Alphaの値はRGBAと同様に 0.0〜1.0 の範囲で指定します。0.0が完全な透明、1.0が完全な不透明です。これにより、HSLの直感的な色指定と透過表現を同時に実現できます。
HSLAのサンプルコード
最後に、HSLAカラー値を使った例を見てみましょう。
<!DOCTYPE html>
<html>
<head>
<style>
#demo1 {background-color: hsla(140, 100%, 50%, 0.8);}
#demo2 {background-color: hsla(130, 100%, 50%, 0.6);}
#demo3 {background-color: hsla(190, 100%, 50%, 0.4);}
#demo4 {background-color: hsla(170, 100%, 50%, 0.3);}
#demo5 {background-color: hsl(150, 100%, 60%);}
#demo6 {background-color:rgba(108,111,35,0.6);}
</style>
</head>
<body>
<h1>Cricketers</h1>
<p id="demo1">David Warner</p>
<p id="demo2">Steve Smith</p>
<p id="demo3">Mark Waugh</p>
<p id="demo4">Steve Waugh</p>
<p id="demo5">David Johnson</p>
<p id="demo6">Andy Bichel</p>
</body>
</html>実行結果

この例では、色相を140〜190の範囲で変えながら、Alpha値を0.8から0.3まで段階的に下げています。色相の違いによる色味の変化と、透過率の違いによる重なり方の変化の両方が確認できます。
まとめ:3つのカラー値の使い分け
| カラー値 | 構成要素 | 主な用途 |
|---|---|---|
| RGBA | 赤・緑・青+不透明度 | 正確な色指定と半透明表現 |
| HSL | 色相・彩度・輝度 | 直感的な色の調整・配色設計 |
| HSLA | 色相・彩度・輝度+不透明度 | 直感的な色調整と半透明表現の両立 |
RGBAは既存のRGB指定に慣れている場合に便利で、HSL/HSLAは「明るさを少し上げたい」「彩度を抑えたい」といった感覚的な調整に向いています。用途に応じて使い分けることで、より効率的で美しいCSSデザインが実現できます。
-
CSS3のFlexboxで要素を水平・垂直方向に中央揃えする方法
CSS3のFlexboxを使えば、複雑な計算やposition指定をすることなく、要素を水平・垂直方向の両方で簡単に中央揃えできます。ポイントは、親コンテナにdisplay: flex;を設定し、水平方向の配置にはjustify-contentプロパティ、垂直方向の配置にはalign-itemsプロパティを使用することです。中央揃えに必要なプロパティjustify-content: center; … 主軸(デフォルトでは水平方向)に沿って子要素を中央に配置します。align-items: center; … 交差軸(デフォルトでは垂直方向)に沿って子要素を中央に配置します。この2つのプロパテ
-
カラーコードの違いを徹底解説:16進数(HEX)・RGB・HSLの特徴と使い分け
画面に色を表示する方法は、コーディングの観点からいくつかあります。その中でも「HEX(16進数)」「RGBA」「HSLA」は、最もよく使われる3つのカラーコード体系です。HEXコードやRGBを見たことがある方は多いでしょう。しかし、人間にとって読みやすいHSLは、まだ馴染みがないかもしれません。色の書き表し方はそれぞれ異なる場面で活きるため、各方式の基本を理解しておけば、状況に応じて最適な選択ができるようになります。この記事では、RGB・HEX・HSLの違いをわかりやすく解説します。RGBとは?(赤・緑・青)まずはRGBから説明するのが理にかなっています。なぜなら赤(Red)・緑(Green)