CSSのopacityで透明度を調整し、デザインに活用する方法をわかりやすく解説

スポンサーリンク

opacityプロパティは、要素の透明度を指定するために使用されます。値は0から1の範囲で指定し、0に近いほど要素が透明になります。1は完全に不透明、0は完全に透明です。

スポンサーリンク

opacityプロパティの値とその効果の一覧

  • 1 – 要素は完全に不透明です。
  • 0.75 – 要素は75%不透明で、少しだけ透けています。
  • 0.5 – 要素は50%不透明で、半透明の状態になります。
  • 0.25 – 要素は25%不透明で、かなり透明になります。
  • 0 – 要素は完全に透明です。

注意点や関連情報

opacityプロパティは、要素全体に影響を与えます。例えば、画像やテキストが含まれている要素に対してopacityを設定すると、その要素内のすべてのコンテンツも透明になります。個別の要素に透明度を適用したい場合は、rgbaのような色指定を使用することが推奨されます。

opacityが効かない時の原因と対策

親要素にopacityが設定されている

opacityは親要素に設定すると、その子要素にも同じ透明度が適用されます。親要素にopacityが設定されている場合、子要素のopacityが期待通りに機能しないことがあります。

対策: 親要素のopacityを確認し、子要素のみの透明度を変更したい場合は、親要素にはopacityを設定せず、子要素個別に透明度を設定します。

positionプロパティの影響

要素にposition: absoluteposition: fixedが設定されている場合、opacityの効果が期待通りに表示されないことがあります。特に、スタッキングコンテキストの関係で、他の要素に影響を与えることがあります。

対策: positionプロパティを確認し、要素のz-indexやスタッキングコンテキストが適切に設定されているか確認します。

重なり順やz-indexの影響

要素が他の要素の背後に隠れている場合、opacityを設定しても視覚的に効果が見えないことがあります。これは、要素がz-indexによって重なり順が制御されている場合です。

対策: 要素のz-indexや重なり順を確認し、必要に応じてz-indexを調整して透明度の効果を正しく視覚的に確認できるようにします。

共通するCSSコード

.css-sample-container {
      width: 100%;
      margin: 20px 0;
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
    }

    .css-sample-item {
      width: 300px;
      height: 200px;
      margin: 10px;
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      border: 2px solid #000;
    }

    .css-sample-item img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .css-sample-item-text {
      position: absolute;
      color: white;
      font-size: 20px;
      text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
    }
  

opacity: 1;

要素が完全に不透明な状態です。

HTMLコード

<div class="css-sample-container">
      <div class="css-sample-item css-sample-opacity-1">
        <img src="https://programming-cafe.com/wp-content/uploads/colorphoto02.jpg" alt="サンプル画像">
        <div class="css-sample-item-text">Opacity 1</div>
      </div>
    </div>
  

CSSコード

.css-sample-opacity-1 img {
      opacity: 1;
    }
  

表示結果

サンプル画像

Opacity 1

opacity: 0.75;

要素が75%不透明な状態です。少しだけ透けて見えます。

HTMLコード

<div class="css-sample-container">
      <div class="css-sample-item css-sample-opacity-0_75">
        <img src="https://programming-cafe.com/wp-content/uploads/colorphoto02.jpg" alt="サンプル画像">
        <div class="css-sample-item-text">Opacity 0.75</div>
      </div>
    </div>
  

CSSコード

.css-sample-opacity-0_75 img {
      opacity: 0.75;
    }
  

表示結果

サンプル画像

Opacity 0.75

opacity: 0.5;

要素が50%不透明な状態です。半透明です。

HTMLコード

<div class="css-sample-container">
      <div class="css-sample-item css-sample-opacity-0_5">
        <img src="https://programming-cafe.com/wp-content/uploads/colorphoto02.jpg" alt="サンプル画像">
        <div class="css-sample-item-text">Opacity 0.5</div>
      </div>
    </div>
  

CSSコード

.css-sample-opacity-0_5 img {
      opacity: 0.5;
    }
  

表示結果

サンプル画像

Opacity 0.5

opacity: 0.25;

要素が25%不透明な状態です。かなり透明に見えます。

HTMLコード

<div class="css-sample-container">
      <div class="css-sample-item css-sample-opacity-0_25">
        <img src="https://programming-cafe.com/wp-content/uploads/colorphoto02.jpg" alt="サンプル画像">
        <div class="css-sample-item-text">Opacity 0.25</div>
      </div>
    </div>
  

CSSコード

.css-sample-opacity-0_25 img {
      opacity: 0.25;
    }
  

表示結果

サンプル画像

Opacity 0.25

opacity: 0;

要素が完全に透明な状態です。

HTMLコード

<div class="css-sample-container">
      <div class="css-sample-item css-sample-opacity-0">
        <img src="https://programming-cafe.com/wp-content/uploads/colorphoto02.jpg" alt="サンプル画像">
        <div class="css-sample-item-text">Opacity 0</div>
      </div>
    </div>
  

CSSコード

.css-sample-opacity-0 img {
      opacity: 0;
    }
  

表示結果

サンプル画像

Opacity 0

まとめ

  • opacityプロパティは、要素の透明度を調整します。
  • 値は0から1の範囲で指定し、0が完全に透明、1が完全に不透明です。
  • 透明度を部分的に適用したい場合は、rgbaなどの他の方法を検討してください。