opacity
は不透明度を指定するためのCSSプロパティです。
opacity
プロパティは1
から0
の間で指定します。 opacity
を1
から0
に0.1
刻みで減らしていった結果を示します。
<div class="sample op1_0">1.0</div> <div class="sample op0_9">0.9</div> <div class="sample op0_8">0.8</div> <div class="sample op0_7">0.7</div> <div class="sample op0_6">0.6</div><br> <div class="sample op0_5">0.5</div> <div class="sample op0_4">0.4</div> <div class="sample op0_3">0.3</div> <div class="sample op0_2">0.2</div> <div class="sample op0_1">0.1</div> <div class="sample op0_0">0.0</div>
.op1_0 { opacity: 1; } .op0_9 { opacity: 0.9; } .op0_8 { opacity: 0.8; } .op0_7 { opacity: 0.7; } .op0_6 { opacity: 0.6; } .op0_5 { opacity: 0.5; } .op0_4 { opacity: 0.4; } .op0_3 { opacity: 0.3; } .op0_2 { opacity: 0.2; } .op0_1 { opacity: 0.1; } .op0_0 { opacity: 0; } .sample { color: white; /* 文字の色 */ background-color: navy; /* 背景 */ margin: 2px; /* 外側の余白 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 1.5rem; /* 文字の大きさ */ }
opacity
を1
から0
に.sample
クラスを持つ<div>
要素を準備します。
<div class="sample">■ sample ■</div>
.sample { color: black; /* 文字の色 */ background-color: orange; /* 背景 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.sample
クラスにopacity
を指定します。0.75
、0.5
、0.25
を指定した場合の例を示します。
<div class="sample">■ sample ■</div>
.sample { color: black; /* 文字の色 */ background-color: orange; /* 背景 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.sample { opacity: 0.75; }
0.75
<div class="sample">■ sample ■</div>
.sample { color: black; /* 文字の色 */ background-color: orange; /* 背景 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.sample { opacity: 0.5; }
0.5
<div class="sample">■ sample ■</div>
.sample { color: black; /* 文字の色 */ background-color: orange; /* 背景 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.sample { opacity: 0.25; }
0.25
.sample
クラスにopacity: 0
を指定すると完全な透明になって見えなくなります。 1
はデフォルト値であり、完全な不透明です。
<div class="sample">■ sample ■</div>
.sample { color: black; /* 文字の色 */ background-color: orange; /* 背景 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.sample { opacity: 0; }
0
<div class="sample">■ sample ■</div>
.sample { color: black; /* 文字の色 */ background-color: orange; /* 背景 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.sample { opacity: 1; }
1
親要素を透明にする場合
親要素を透明にすると子要素も透明になるので注意してください。
親子関係のある要素を準備します。 親要素.parent
にopacity: 0.3
を指定すると子要素.child
も半透明になります。
<div class="parent"> parent<br> <div class="child"> ■ child ■ </div> </div>
.parent { color: white; /* 文字の色 */ background-color: blue; /* 背景 */ } .child { color: black; background-color: lightblue; } div { padding: 20px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
<div class="parent"> parent<br> <div class="child"> ■ child ■ </div> </div>
.parent { color: white; /* 文字の色 */ background-color: blue; /* 背景 */ } .child { color: black; background-color: lightblue; } div { padding: 20px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.parent { opacity: 0.3; }
半透明な背景色を指定
opacity
を使うと文字まで半透明になり読みにくくなります。 これを避けるには、背景色をrgba()
やhsla()
で指定する方法があります。
rgba()
rgb()
で指定するには( 赤, 緑, 青 )
で指定します。たとえばorange
の場合はrgb( 255, 165, 0 )
になります。 ※ RGB値やHSL値の計算はfromkato.com
でできます。
<div class="sample">■ sample ■</div>
.sample { color: black; /* 文字の色 */ background-color: orange; /* 背景 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.sample { background-color: rgb( 255, 165, 0 ); }
rgb( 255, 165, 0 )
これに色の透明度であるアルファ値を加えたrgba()
で色を指定します。
アルファ値は1
から0
の間で指定します。アルファ値を0.7
、0.4
、0.1
に設定した例を示します。
<div class="sample">■ sample ■</div>
.sample { color: black; /* 文字の色 */ background-color: orange; /* 背景 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.sample { background-color: rgba( 255, 165, 0, 0.7 ); }
rgba( 255, 165, 0, 0.7 )
<div class="sample">■ sample ■</div>
.sample { color: black; /* 文字の色 */ background-color: orange; /* 背景 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.sample { background-color: rgba( 255, 165, 0, 0.4 ); }
rgba( 255, 165, 0, 0.4 )
<div class="sample">■ sample ■</div>
.sample { color: black; /* 文字の色 */ background-color: orange; /* 背景 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.sample { background-color: rgba( 255, 165, 0, 0.1 ); }
rgba( 255, 165, 0, 0.1 )
このようにrgba()
を使うと文字は濃いまま、背景色だけを半透明にすることができます。
hsla()
hsl()
で指定するには( 色相, 彩度, 明度 )
で指定します。orange
の場合はhsl( 39, 100, 50 )
になります。 ※ RGB値やHSL値の計算はfromkato.com
でできます。
これにアルファ値を加えてhsla()
で背景色を指定します。アルファ値を0.7
、0.4
、0.1
に設定した例を示します。
<div class="sample">■ sample ■</div>
.sample { color: black; /* 文字の色 */ background-color: orange; /* 背景 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.sample { background-color: rgba( 255, 165, 0, 0.7 ); }
hsla( 39, 100, 50, 0.7 )
<div class="sample">■ sample ■</div>
.sample { color: black; /* 文字の色 */ background-color: orange; /* 背景 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.sample { background-color: rgba( 255, 165, 0, 0.4 ); }
hsla( 39, 100, 50, 0.4 )
<div class="sample">■ sample ■</div>
.sample { color: black; /* 文字の色 */ background-color: orange; /* 背景 */ padding: 5px 10px; /* 内側の余白 */ display: inline-block; /* インライン・ブロック要素 */ font-size: 2rem; /* 文字の大きさ */ }
.sample { background-color: rgba( 255, 165, 0, 0.1 ); }
hsla( 39, 100, 50, 0.1 )