主題配色下的背景透明度

用 CSS color-mix() 解決背景透明度的痛點

在設計卡片組件時,經常遇到這樣的需求:卡片背景需要80%透明度,鼠標懸浮在內部某項時,修改背景色但保持同樣的透明度。

問題場景

.card {background: rgba(59, 130, 246, 0.8); /* 藍色80%透明度 */
}.card-item:hover {/* 想要綠色背景,同樣80%透明度 */background: rgba(34, 197, 94, 0.8);
}

看似簡單,但當使用CSS變量時就會遇到問題。

常見的錯誤方案

方案1:使用 opacity(?)

.card-item:hover {background: var(--green-color);opacity: 0.8; /* 整個元素變淡,包括文字 */
}

問題opacity 會影響整個元素,文字也會變淡,用戶體驗差。

方案2:使用 rgba with from(??)

.card-item:hover {background: rgba(from var(--green-color) r g b / 0.8);
}

問題:只支持rgb格式的變量,如果 --green-color: #22c55e,這種寫法會失效。

完美解決方案:color-mix()

.card-item:hover {background: color-mix(in srgb, var(--green-color) 80%, transparent);
}

實際應用

:root {--primary: #3b82f6;--success: #22c55e;--warning: #f59e0b;
}.card {background: color-mix(in srgb, var(--primary) 80%, transparent);padding: 1rem;
}.card-item {padding: 0.5rem;border-radius: 4px;transition: background 0.2s;
}.card-item:hover {background: color-mix(in srgb, var(--success) 80%, transparent);
}.card-item.warning:hover {background: color-mix(in srgb, var(--warning) 80%, transparent);
}

color-mix() 特點

  1. 兼容所有顏色格式:無論變量是 #fffrgb(255,255,255) 還是 hsl(0,0%,100%)
  2. 只影響背景:文字保持清晰,不會變淡
  3. 語義清晰:80% 主色 + 20% 透明 = 80% 透明度
  4. 易于維護:修改透明度只需改一個數值

瀏覽器兼容性

現代瀏覽器都支持,如需兼容舊版本:

.card-item:hover {background: rgba(34, 197, 94, 0.8); /* fallback */background: color-mix(in srgb, var(--success) 80%, transparent);
}

總結

當需要為CSS變量添加透明度時,color-mix() 是最佳選擇。它解決了 opacity 影響整體元素和 rgba(from) 格式限制的問題,讓背景透明度控制變得簡單而優雅。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919742.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919742.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919742.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Python代碼】谷歌專利CSV處理函數

以下是一個重構后的高可用、可配置、低耦合的專利CSV處理函數,包含清晰的注釋和結構: import csv import pandas as pd from datetime import datetime import os from typing import List, Dict, Any, Optional, Tuple import logging# 配置日志 loggin…

3-2〔OSCP ? 研記〕? WEB應用攻擊?WEB安全防護體系

鄭重聲明: 本文所有安全知識與技術,僅用于探討、研究及學習,嚴禁用于違反國家法律法規的非法活動。對于因不當使用相關內容造成的任何損失或法律責任,本人不承擔任何責任。 如需轉載,請注明出處且不得用于商業盈利。 …

PCIe 5.0相比頂級PCIe 4.0有何提升?

還在為PCIe 4.0固態硬盤那7000MB/s的速度沾沾自喜?醒醒,朋友。當很多人還在討論PCIe 4.0是否“性能過剩”時,真正面向未來的PCIe 5.0已經帶著碾壓級的實力,來到了我們面前。這不是一次常規的“升級”,更不是英特爾式的…

23種設計模式——適配器模式(Adapter)?詳解

?作者簡介:大家好,我是 Meteors., 向往著更加簡潔高效的代碼寫法與編程方式,持續分享Java技術內容。 🍎個人主頁:Meteors.的博客 💞當前專欄: 設計模式 ?特色專欄: 知識分享 &…

Vue3源碼reactivity響應式篇之Reactive

概覽 vue3中reactive用于將普通對象轉換為響應式對象,它的實現原理是通過Proxy和Reflect來實現的。具體的實現文件參見packages\reactivity\src\reactive.ts。本文會介紹reactive的相關api如下: reactive:將普通對象轉換為響應式對象readonly…

初識數據結構——Map和Set:哈希表與二叉搜索樹的魔法對決

數據結構專欄 ?(click) 大家好!我是你們的老朋友——想不明白的過度思考者!今天我們要一起探索Java中兩個神奇的數據結構:Map和Set!準備好了嗎?讓我們開始這場魔法之旅吧!🎩 🎯 先…

Unreal Engine UStaticMeshComponent

UnrealUnreal Engine - UStaticMeshComponent🏛 定義🏛 類繼承? 關鍵特性?? 常見配置🛠? 使用方法📚 在 C 中使用📚 在藍圖中使用🎮 典型應用場景📚 常見子類與用途📝 小結Unrea…

demo 汽車之家(渲染-篩選-排序-模塊抽離數據)

效果圖展示:代碼截圖注釋詳情實現筆記總體目標(按需求點對照代碼)數據模塊化、整體渲染框架、篩選/排序的高亮與行為,全部已在 Index.ets CarData.ets 落地。下面按圖片需求 2~4 點逐條總結,并給出關鍵代碼定位與“為…

雙重機器學習DML介紹

本文參考: [1]文心一言回答; 一、核心原理與數學框架 雙重機器學習(Double Machine Learning, DML)由Chernozhukov等學者于2018年提出,是一種結合機器學習與傳統計量經濟學的因果推斷框架。其核心目標是在高維數據和非…

【圖像算法 - 21】慧眼識蟲:基于深度學習與OpenCV的農田害蟲智能識別系統

摘要: 在現代農業生產中,病蟲害是影響作物產量和品質的關鍵因素之一。傳統的害蟲識別依賴人工巡查,效率低、成本高且易出錯。本文將介紹如何利用深度學習與OpenCV構建一套高效的農田害蟲智能識別系統。該系統能夠自動識別10類常見農業害蟲&a…

循環神經網絡實戰:GRU 對比 LSTM 的中文情感分析(三)

循環神經網絡實戰:GRU 對比 LSTM 的中文情感分析(三) 文章目錄循環神經網絡實戰:GRU 對比 LSTM 的中文情感分析(三)前言數據準備(與 LSTM 相同)模型搭建(GRU)…

學習游戲制作記錄(制作提示框以及使用鍵盤切換UI)8.21

1.制作裝備提示框創建提示框,添加文本子對象,用來描述名稱,類型以及屬性加成掛載垂直分配組件和文本大小適配組件,這樣圖像會根據文本大小來調整自己創建UI_ItemTip腳本并掛載在文本框上:[SerializeField] private Tex…

chapter07_初始化和銷毀方法

一、簡介 一個Bean,在進行實例化之后,需要進行兩種初始化 初始化屬性,由PropertyValues進行賦值初始化方法,由ApplicationContext統一調用,例如加載配置文件 Bean的初始化與銷毀,共有三種方式(注…

open webui源碼分析6-Function

一、Functions簡介 可以把Tools作為依賴于外部服務的插件,Functions就是內部插件,二者都是用來增強open webui的能力的。Functions是輕量的,高度可定制的,并且是用純Python編寫的,所以你可以自由地創建任何東西——從新…

C2039 “unref“:不是“osgEarth::Symbology::Style”的成員 問題分析及解決方法

在osgEarth2.10中實現多線段連續測量功能時,遇到下圖中的錯誤; 經過測試和驗證,主要問題出現在下圖圈出代碼的定義上 圖22-1 對于22-1中的兩個變量這樣定義是錯誤的。因為Style類沒有繼承自osg::Referenced,因此不能與osg::ref_ptr配合使用

GitHub 熱榜項目 - 日榜(2025-08-19)

GitHub 熱榜項目 - 日榜(2025-08-19) 生成于:2025-08-19 統計摘要 共發現熱門項目:12 個 榜單類型:日榜 本期熱點趨勢總結 本期GitHub熱榜呈現三大技術熱點:1)AI原生開發持續爆發,Archon OS、Parlant等…

ingress 配置ssl證書

模擬環境舉例&#xff1a; # 生成帶 OU 的證書配置文件 cat > csr.conf <<EOF [ req ] default_bits 2048 prompt no default_md sha256 distinguished_name dn[ dn ] C CN ST Beijing L Beijing O YourCompany, Inc. # 組織名稱 (必填) OU DevOps De…

Pandas 合并數據集:concat 和 append

文章目錄Pandas 合并數據集&#xff1a;concat 和 append回顧&#xff1a;NumPy 數組的拼接使用 pd.concat 進行簡單拼接重復索引將重復索引視為錯誤忽略索引添加多級索引&#xff08;MultiIndex&#xff09;鍵使用連接&#xff08;Join&#xff09;方式拼接append 方法Pandas …

2025年5月架構設計師綜合知識真題回顧,附參考答案、解析及所涉知識點(七)

本文主要回顧2025年上半年(2025-5-24)系統架構設計師考試上午綜合知識科目的選擇題,同時附帶參考答案、解析和所涉知識點。 2025年5月架構設計師綜合知識真題回顧,附參考答案、解析及所涉知識點(一) 2025年5月架構設計師綜合知識真題回顧,附參考答案、解析及所涉知識點(…

面向RF設計人員的微帶貼片天線計算器

微帶貼片天線和陣列可能是僅次于單極天線和偶極天線的最簡單的天線設計。這些天線也很容易集成到PCB中&#xff0c;因此通常用于5G天線陣列和雷達等高級系統。這些天線陣列在基諧模式和高階模式下也遵循一組簡單的設計方程&#xff0c;因此您甚至可以在不使用仿真工具的情況下設…