首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何组合CSS "text-shadow“和”gradient image:-webkit-gradient“

如何组合CSS "text-shadow“和”gradient image:-webkit-gradient“
EN

Stack Overflow用户
提问于 2010-09-27 16:38:40
回答 3查看 20.8K关注 0票数 19

我试图在Chrome/Safari中使用CSS文本阴影和文本阴影和背景图像的组合来实现渐变+文本阴影效果:-webkit- gradient,请参见示例blw。我只能应用其中一个效果(如果我添加阴影,渐变就会消失。我做错了什么?

代码语言:javascript
复制
h1 {
font-size: 100px;
background-image: -webkit-gradient(linear, left top, left bottom, from(white), to(black));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
text-shadow: 0 1px 1px #fff;
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-27 17:08:46

渐变“消失”,因为text-shadow位于背景之上。

阴影文本( is is transparent)

  • The

我们可以通过复制文本并将其放在原始层的下面来解决这个问题,然后在那里应用阴影,for example

代码语言:javascript
复制
  h1 {
    position: relative;
    font-size: 100px;
    text-align: center;
  }
  
  h1 div {
    background-image: linear-gradient(white, black);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    position: absolute; 
    width: 100%;
}
  h1:after {
    text-shadow: 10px 10px 11px #fff;
    color: transparent;
  }
  
  #hello:after {
        content: 'Hello World';
  }
代码语言:javascript
复制
  <h1 id="hello"><div>Hello World</div></h1>
票数 19
EN

Stack Overflow用户

发布于 2018-02-13 03:02:46

在没有额外的HTML标记或伪元素的情况下,您可以使用filter属性和drop-shadow函数来实现此效果。此方法也适用于背景图像与渐变。

代码语言:javascript
复制
h1 {
  font:54px 'Open Sans', 'Helvetica', Arial, sans-serif;
  background-image: linear-gradient(#787878, #484848);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  -webkit-filter: drop-shadow(2px 2px #333);
          filter: drop-shadow(2px 2px #333);
}

小提琴:https://jsfiddle.net/eywda89g/

票数 9
EN

Stack Overflow用户

发布于 2014-04-06 06:37:04

这个答案与上面@KennyTM的答案类似,除了他的答案将阴影硬编码到CSS中,这不适用于动态文本,如在内容管理系统中。此外,他的方法要求每个实例都有一个单独的ID,如果您计划经常使用此效果,这将非常乏味。下面的示例使用类代替,并允许动态文本。

试试这个:

代码语言:javascript
复制
h1 {
    position: relative;
    font-size: 100px;
    text-align: center;
}

h1 div {
    background-image: linear-gradient(teal, black);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    position: absolute; 
    width: 100%;
}
h1:after {
    text-shadow: 2px 2px 2px #000000;
    color: transparent;
}

.gradient-shadow:after {
    content: attr(title); /* Pulls the text from the 'title' attribute to make the shadow */
}

然后在你的HTML中:

代码语言:javascript
复制
<h1 class="gradient-shadow" title="Hello World"><div>Hello World</div></h1>

只需确保<div>中的文本与title属性中的文本匹配即可。

下面是此方法的代码示例:https://codepen.io/mprewitt/pen/gexypd

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3802218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档