我试图在Chrome/Safari中使用CSS文本阴影和文本阴影与背景图像的组合来实现渐变+文本阴影效果:-webkit-gradient,见示例blw。我只能应用其中一种效果(如果我添加阴影,渐变就会消失。我做错了什么?)
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;
}
4条答案
按热度按时间2wnc66cl1#
渐变“消失”是因为
text-shadow
位于背景上方的级别上。1.文本(透明)
1.影子
1.的背景。
我们可以通过复制文本并将其放在原始图层下面,然后在那里应用阴影for example来解决这个问题:
第一个
t9aqgxwy2#
不需要额外的HTML标记或伪元素,您可以使用filter属性和下拉阴影函数来实现此效果。此方法也适用于背景图像与渐变。
小提琴:https://jsfiddle.net/eywda89g/
jq6vz3qz3#
这个答案与上面的@KennyTM的答案类似,只是他的答案将阴影硬编码到CSS中,这不适合CMS中的动态文本。而且,他的方法需要为每个示例提供一个单独的ID,如果你打算经常使用这种效果,这将是非常乏味的。下面的例子使用了一个类,并允许动态文本。
试试这个:
然后在HTML中:
只需确保
<div>
中的文本与title
属性中的文本匹配。下面是此方法的Codepen示例:https://codepen.io/mprewitt/pen/gexypd
fcg9iug34#
这些答案对我得出最终结果帮助很大。谢谢。
所以我想我会分享它。看到我的文字颜色是浅的,我需要一个较深的“边界”在顶部,使它流行。
此外,虽然“ems”更难处理(相对于px),我发现文本阴影的颜色过渡看起来平滑得多,因为我想让它也成为一个梯度:)
作品的边缘,铬,维瓦尔第和火狐,有点模糊虽然。