搜尋

首頁  >  問答  >  主體

如何將不透明度套用至 CSS 顏色變數?

<p>我正在使用 Electron 設計一個應用程序,因此我可以訪問 CSS 變數。我在 vars.css 中定義了一個顏色變數:</p> <pre class="brush:css;toolbar:false;">:root { --color: #f0f0f0; } </pre> <p>我想在 <code>main.css</code> 中使用這個顏色,但應用了一些不透明度:</p> <pre class="brush:css;toolbar:false;">#element { background: (somehow use var(--color) at some opacity); } </pre> <p>我該如何做?我沒有使用任何預處理器,只使用CSS。我比較喜歡全 CSS 答案,但我會接受 JavaScript/jQuery。 </p> <p>我無法使用<code>不透明度</code>,因為我使用的背景圖片不應該是透明的。 </p>
P粉495955986P粉495955986460 天前480

全部回覆(1)我來回復

  • P粉715274052

    P粉7152740522023-08-24 18:50:58

    您不能採用現有顏色值並對其套用 Alpha 通道。也就是說,您不能採用現有的十六進位值(例如 #f0f0f0),為其提供 alpha 分量並將結果值與另一個屬性一起使用。

    但是,自訂屬性可讓您將十六進位值轉換為RGB 三元組以與rgba() 一起使用,將該值儲存在自訂屬性中(包括逗號!) ,使用將var() 轉換為具有所需alpha 值的rgba() 函數,它就會正常工作:

    :root {
      /* #f0f0f0 in decimal RGB */
      --color: 240, 240, 240;
    }
    
    body {
      color: #000;
      background-color: #000;
    }
    
    #element {
      background-color: rgba(var(--color), 0.8);
    }
    <p id="element">If you can see this, your browser supports custom properties.</p>

    回覆
    0
  • 取消回覆