css颜色变淡和变浅方法收集(模拟sass的darken和lighten函数)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <style> :root{ --color: rgb(211,68,52); } .list{ display: flex; } .list > div{ width: 100px; height: 100px; margin-left: 20px; margin-top: 20px; } /* bg start */ @keyframes lightenBgColor { from { background-color: var(--color) } to{ background-color: #fff } } @keyframes darkenBgColor { from { background-color: var(--color) } to{ background-color: #000 } } /* bg end */ /* property start */ @keyframes lightenColor { from { --lightenColor: var(--color) } to{ --lightenColor: #fff } } @keyframes darkenColor { from { --darkenColor: var(--color) } to{ --darkenColor: #000 } } @property --lightenColor { syntax: '<color>'; inherits: false; initial-value: #fff; } @property --darkenColor { syntax: '<color>'; inherits: false; initial-value: #000; } /*color-mix获取中间色*/ .con1{ --darken: color-mix(in srgb, var(--color), #000 20%); background-color: var(--darken); } .con2{ --lighten: color-mix(in srgb, var(--color), #fff 20%); background-color: var(--lighten); } /*用黑透明或白透明遮罩蒙层获取中间色*/ .con4{ background: linear-gradient(rgba(255,255,255,.2) 0 0), linear-gradient(var(--color) 0 0); } .con3{ background: linear-gradient(rgba(0,0,0,.2) 0 0), linear-gradient(var(--color) 0 0); } /*动画获取中间色*/ .con5{ animation: darkenBgColor .001s 0.2 linear forwards; } .con6{ animation: lightenBgColor .001s 0.2 linear forwards; } /*@property颜色变量获取中间色,比直接使用属性更具通用性*/ .con7{ background-color: var(--darkenColor); animation: darkenColor .001s 0.2 linear forwards; } .con8{ background-color: var(--lightenColor); animation: lightenColor .001s 0.2 linear forwards; } /*滤镜和透明度获取中间色*/ .con9{ background-color: var(--color); filter: brightness(.8); } .con10{ background-color: var(--color); opacity: .8; /* filter: brightness(1.2) */ /* 效果不同 */ } </style> <div class="list"> <div class="con1"></div> <div class="con2"></div> </div> <div class="list"> <div class="con3"></div> <div class="con4"></div> </div> <div class="list"> <div class="con5"></div> <div class="con6"></div> </div> <div class="list"> <div class="con7"></div> <div class="con8"></div> </div> <div class="list"> <div class="con9"></div> <div class="con10"></div> </div> </body> </html>
颜色变浅和变淡的方法主要有,color-mix混合,多背景颜色重叠,动画渐变截断,亮度滤镜,透明度等。
动画获取中间色的原理,animation可以颜色动画,即从一种颜色变化到另一种颜色。动画播放次数可以是小数,比如0.2次。再给动画一个极小的播放时间,就可以在页面上直接显示出一个中间色。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具