在具有透明背景的图像上放置渐变背景
Placing a gradient background on an image with transparent background
我想要实现的基本上是在文本而不是图像背景上出现渐变。我在这里创建了一个示例:
https://codepen.io/BenSagiStuff/pen/BaYKbNj
body{
background: black;
}
img{
padding: 30px;
background: linear-gradient(to right, #E50000 8%, #FF8D00 28%, #FFEE00 49%, #008121 65%, #004CFF 81%, #760188 100%);
}
<img src="https://upload.wikimedia.org/wikipedia/commons/9/95/Transparent_google_logo_2015.png" >
如您所见,目前图像的背景具有渐变,但是,我希望文本“Google”具有渐变,而 png 的背景应保持为黑色.
最终目标是在图像下方也有渐变过渡,因此渐变也在图像下方水平滑动。
将图像用作公共元素的遮罩
body{
background: black;
}
.box{
--img:url(https://upload.wikimedia.org/wikipedia/commons/9/95/Transparent_google_logo_2015.png);
width:300px;
aspect-ratio:3;
background: linear-gradient(to right, #E50000 8%, #FF8D00 28%, #FFEE00 49%, #008121 65%, #004CFF 81%, #760188 100%);
-webkit-mask: var(--img) 50%/cover;
mask: var(--img) 50%/cover;
}
<div class="box"></div>
你的实现有点问题。
PNG 是透明的,但它是一张方形图片。您可能会成功使用 svg 图像或只是 在文本标记中应用此渐变背景。
在你的 HTML 上你这样做:
<div>
<h1>Google</h1>
</div>
你的CSS这样
body{
background: black;
font-family:helvetica;
}
h1{
background: linear-gradient(to right, #E50000 8%, #FF8D00 28%, #FFEE00 49%, #008121 65%, #004CFF 81%, #760188 100%);
font-size: 160px;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
div {
display:flex;
}
它也性能更好。
此外,您可以轻松地制作动画。
如本codepen中的例子https://codepen.io/shshaw/pen/YpERQQ
:)
我想要实现的基本上是在文本而不是图像背景上出现渐变。我在这里创建了一个示例: https://codepen.io/BenSagiStuff/pen/BaYKbNj
body{
background: black;
}
img{
padding: 30px;
background: linear-gradient(to right, #E50000 8%, #FF8D00 28%, #FFEE00 49%, #008121 65%, #004CFF 81%, #760188 100%);
}
<img src="https://upload.wikimedia.org/wikipedia/commons/9/95/Transparent_google_logo_2015.png" >
如您所见,目前图像的背景具有渐变,但是,我希望文本“Google”具有渐变,而 png 的背景应保持为黑色.
最终目标是在图像下方也有渐变过渡,因此渐变也在图像下方水平滑动。
将图像用作公共元素的遮罩
body{
background: black;
}
.box{
--img:url(https://upload.wikimedia.org/wikipedia/commons/9/95/Transparent_google_logo_2015.png);
width:300px;
aspect-ratio:3;
background: linear-gradient(to right, #E50000 8%, #FF8D00 28%, #FFEE00 49%, #008121 65%, #004CFF 81%, #760188 100%);
-webkit-mask: var(--img) 50%/cover;
mask: var(--img) 50%/cover;
}
<div class="box"></div>
你的实现有点问题。
PNG 是透明的,但它是一张方形图片。您可能会成功使用 svg 图像或只是 在文本标记中应用此渐变背景。
在你的 HTML 上你这样做:
<div>
<h1>Google</h1>
</div>
你的CSS这样
body{
background: black;
font-family:helvetica;
}
h1{
background: linear-gradient(to right, #E50000 8%, #FF8D00 28%, #FFEE00 49%, #008121 65%, #004CFF 81%, #760188 100%);
font-size: 160px;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
div {
display:flex;
}
它也性能更好。
此外,您可以轻松地制作动画。
如本codepen中的例子https://codepen.io/shshaw/pen/YpERQQ
:)