简体   繁体   English

使用css的文本中带有线性渐变边框的渐变颜色不起作用

[英]Gradient colour with Linear Gradient Border in text using css not working

I would like design £1 similar to the following image using CSS.我想使用 CSS 设计类似于下图的£1

1 英镑

I would like to have some text with gradient colour, gradient border and text-shadow in this design.我想在这个设计中有一些带有渐变颜色、渐变边框和文本阴影的文本。 I tried the following code, but it doesn't work.我尝试了以下代码,但它不起作用。

CSS: CSS:

.pound-lbl {
       background-image: linear-gradient(275deg, #f8e71c 0%, #f8bd1c 100%);
       -webkit-background-clip: text;
       color: #FFDE17;
       text-shadow: 0 2px 4px rgba(0,0,0,0.50);
       background: -webkit-linear-gradient(275deg,#F8CC1C 0%, #FFFFFF 100%);
       -webkit-background-clip: text;
       -webkit-text-stroke: 2px transparent;
}

I think the only way to have this effect is to duplicate the text.我认为产生这种效果的唯一方法是复制文本。 One will get the stroke coloration and the other the background coloration:一个将获得笔触着色,另一个将获得背景着色:

I used different colors to better identify them:我使用了不同的颜色来更好地识别它们:

 span[data-text] { display:inline-block; font-size:90px; font-weight:bold; font-family:arial; position:relative; margin:10px; } span[data-text]:before { content:attr(data-text); text-shadow: 0 2px 20px purple; background: linear-gradient(to bottom,red 0%, blue 100%); -webkit-text-stroke: 5px transparent; -webkit-background-clip: text; background-clip: text; color:transparent; } span[data-text]:after { content:attr(data-text); left:0; top:0; position:absolute; background-image: linear-gradient(275deg, green 0%, yellow 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
 <span data-text="£1"></span>

Gradients on text文字渐变

When you need to set gradients on text css is not the tool to use.当您需要在文本上设置渐变时,css 不是可以使用的工具。
Its easier to use svg for advanced gradient and all complex shapes.它更容易将svg用于高级渐变和所有复杂形状。

Here is how i would recomend to create the svg:这是我建议创建 svg 的方法:

  1. Define two gradient one for the background one for the text.定义两个渐变,一个为背景,一个为文本。 ( LinearGradient ) ( 线性梯度)
  2. Create background and text.创建背景和文本。 (rect, and text, tspan) (矩形和文本,tspan)
  3. Set the stroke and fill of the elements to the LinearGradients.将元素的描边和填充设置为 LinearGradients。

Here is how it would look:这是它的外观:

 <!--viewBox cuts the shape so that there is little whitespace--> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="500px" height="500px" viewBox="0 40 100 60"> <defs> <!--Gradients defined to use later--> <linearGradient id="textGradient" x1="90" x2="90" y1="40" y2="60" gradientUnits="userSpaceOnUse"> <stop stop-color="#f2cb3c" offset="0"/> <stop stop-color="#ffffff" offset="1"/> </linearGradient> <linearGradient id="backgroundGradient" x1="0" y1="100" x2="0" y2="100" gradientUnits="userSpaceOnUse"> <stop stop-color="#5bc129" offset="0"/> <stop stop-color="#85de31" offset="1"/> </linearGradient> </defs> <!--Rect that covers the background--> <rect fill="url(#backgroundGradient)" stroke="none"; width="100" height="60" x="0" y="20"/> <g class="text" stroke="url(#textGradient)" fill="#f5e43e" stroke-width="0.5"> <text x="35" y="68" style="font-size:50px;font-family:Arial;"> <tspan>£1</tspan> </text> </g> </svg>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM