.rainbowtext{ background-image: -webkit-gradient( linear, left top, right top, color-stop(0, #f22), color-stop(0.15, #f2f), color-stop(0.3, #22f), color-stop(0.45, #2ff), color-stop(0.6, #2f2),color-stop(0.75, #2f2), color-stop(0.9, #ff2), color-stop(1, #f22) );
background-image: gradient( linear, left top, right top, color-stop(0, #f22), color-stop(0.15, #f2f), color-stop(0.3, #22f), color-stop(0.45, #2ff), color-stop(0.6, #2f2),color-stop(0.75, #2f2), color-stop(0.9, #ff2), color-stop(1, #f22) );
color:transparent;
-webkit-background-clip: text;
background-clip: text;
font-weight: bold; }
<p class="rainbowtext">Hello! This should have rainbow coloring.</p>
我想制作一个彩虹色的文字。此代码工作正常,但只有Safari / Chrome,在Firefox中文本是透明的。我试过乱搞它没有成功。任何帮助:P?
答案 0 :(得分:3)
使用SVG在Yoksel的codepen上找到一个解决方案,使用彩虹渐变绘制200x200图案,然后将其作为填充应用于文本。
<div class="wrapper">
<svg width="350" height="25">
<defs>
<linearGradient id="rainbowGradient" x1="0" y1="0" x2="100%" y2="0%"> <!--20% spreadMethod="repeat"-->
<stop offset="0%" stop-color="crimson" /><stop offset="10%" stop-color="purple" />
<stop offset="10%" stop-color="red" /><stop offset="20%" stop-color="crimson" />
<stop offset="20%" stop-color="orangered" /><stop offset="30%" stop-color="red" />
<stop offset="30%" stop-color="orange" /><stop offset="40%" stop-color="orangered" />
<stop offset="40%" stop-color="gold" /><stop offset="50%" stop-color="orange" />
<stop offset="50%" stop-color="yellowgreen" /><stop offset="60%" stop-color="gold" />
<stop offset="60%" stop-color="green" /><stop offset="70%" stop-color="yellowgreen" />
<stop offset="70%" stop-color="steelblue" /><stop offset="80%" stop-color="skyblue" />
<stop offset="80%" stop-color="mediumpurple" /><stop offset="90%" stop-color="steelblue" />
<stop offset="90%" stop-color="purple" /><stop offset="100%" stop-color="mediumpurple" />
</linearGradient>
<pattern id="rainbow"
patternUnits="userSpaceOnUse"
width="200" height="200"
viewbox="0 0 200 200">
<rect width="200" height="200"
fill="url(#rainbowGradient)"/>
</pattern>
</defs>
<text x="0" y="50%" style="fill: url(#rainbow);">Hello! This has have rainbow coloring.</text>
</svg>
</div>
具有讽刺意味的是,我在这里使用ff,所以我误解了你的问题。
你正在使用的这个效果是webkit独有的,firefox上没有对应-webkit-background-clip: text;