所谓“HTML渐变工具”实为CSS代码生成器,核心是输出background-image: linear-gradient()等兼容代码,并提供fallback色;Canvas的createLinearGradient()仅适用于<canvas>上下文。
没有“HTML渐变工具”这种独立东西——所有渐变都靠 CSS 的 linear-gradient() 或 radial-gradient() 实现,所谓“工具”只是帮你生成这段 CSS 代码的网页或插件。
background: linear-gradient(...) 常常没效果最常见原因是误用了简写属性:background 会清空已设的 background-image、background-size 等,而渐变本质是背景图像。
background-image: linear-gradient(to right, #3b82f6, #8b5cf6);
background: linear-gradient(...) —— 它会把可能存在的雪碧图、SVG 图标等一并干掉background-image: linear-gradient(...), url(logo.svg);
linear-gradient(),连 -ms- 前缀都没用,必须设 fallback 色:background-color: #3b82f6;
createLinearGradient() 是 Canvas API,不是 HTML 标签有人搜“HTML 渐变工具”,结果抄了一堆 ctx.createLinearGradient(0, 0, 200, 200),却发现放在 <div> 里根本报错——因为这玩意儿只在 <canvas> 的 2D 上下文里有效。
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
const grad = ctx.createLinearGradient(x0, y0, x1, y1);
addColorStop(),否则渐变对象是空的:grad.addColorStop(0, '#3b82f6');
fillStyle 或 strokeStyle 才真正生效所谓“保姆级工具”,核心就看它是否生成可直接粘贴、不带多余包装、兼容性明确的 CSS 代码。
立即学习“前端免费学习笔记(深入)”;
to right 这类方向参数的现代语法,且同时提供 -webkit-linear-gradient() 前缀(虽然现在 Chrome/Firefox 不再需要,但部分企业内网旧版 WebView 仍依赖)background-color 单色兜底,不能只扔一行渐变button { background-color: #3b82f6; background-image: -webkit-linear-gradient(to right, #3b82f6, #8b5cf6); background-image: linear-gradient(to right, #3b82f6, #8b5cf6);}
background: ... 的工具——它大概率会破坏你已有的背景设置<linearGradient>;普通 div 用不了用 background-clip: text 做文字渐变时,浏览器支持差异比你想的更刺眼。
-webkit-background-clip: text;,且 color 得设为 transparent
background-clip: text,哪怕加前缀也没用mask-image: linear-gradient()(Chrome/Firefox/Edge 支持),但 Safari ≤16.3 不认 mask-image: linear-gradient(),只认图片 URLdisplay: inline-block 或 block,且显式设 font-size 和 line-height,否则裁剪区域可能错位真正难的从来不是生成那行代码,而是判断该用 CSS 还是 Canvas、该加前缀还是删前缀、该保兼容还是砍旧版——这些决策点藏在每个渐变背后,没人替你按回车。