gpt4 book ai didi

html - CSS:如何在混合模式下使用透明背景仅影响/被剪切到(文本)内容?

转载 作者:行者123 更新时间:2023-12-04 03:56:16 24 4
gpt4 key购买 nike

这是我的代码。我认为我想要实现的目标很明显 - 我想删除文本后面的黑色背景,但是,当我简单地删除黑色背景 css 时,渐变层只会显示,因为它没有被剪切到文本中。

body {
margin: 0;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background:url('https://wallpapersite.com/images/pages/pic_w/16658.jpg') no-repeat center center fixed;
background-size: cover;
}

.neon {
position: relative;
overflow: hidden;
filter: brightness(200%);
}

.text {
background-color: black;
color: white;
font-size: 100px;
font-weight: bold;
font-family: sans-serif;
text-transform: uppercase;
position: relative;
user-select: none;
}

.text::before {
content: attr(data-text);
position: absolute;
color: white;
filter: blur(0.02em);
mix-blend-mode: difference;
}

.gradient {
position: absolute;
background: linear-gradient(45deg, #00f7ff, #f545d7, #0085ff, #6945f5, #005aff);
top: 0;
left: 0;
right: 0;
bottom: 0;
mix-blend-mode: multiply;
}

.spotlight {
position: absolute;
top: -100%;
left: -100%;
right: 0;
bottom: 0;
background:
radial-gradient(
circle,
white,
transparent 25%
) center / 25% 25%,
radial-gradient(
circle,
white,
black 25%
) center / 12.5% 12.5%;
animation: light 5s linear infinite;
mix-blend-mode: color-dodge;
}

@keyframes light {
to {
transform: translate(50%, 50%);
}
}
<div class="neon">
<span class="text" data-text="NIGHT SKY">NIGHT SKY</span>
<span class="gradient"></span>
<span class="spotlight"></span>
</div>

无论如何,我已经尝试了一些事情,比如弄乱一些 mix-blend-modes ,添加一些剪切路径等,但无法接近工作。我认为它应该 (?) 是可能的,但如果不是,我明天将尝试其他一些方法(例如将文本转换为 png 并使用 background-clip 属性)

最佳答案

另一个 mix-blend-mode将修复它。使用 lighten在这种情况下,删除您不想要的黑色部分:

html {
background:#fff; /* this is needed to make sure the blending works fine (any color will do the trick) */
}

body {
margin: 0;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: url('https://wallpapersite.com/images/pages/pic_w/16658.jpg') no-repeat center center fixed;
background-size: cover;
}

.neon {
position: relative;
overflow: hidden;
filter: brightness(200%);
mix-blend-mode:lighten; /* here */
}

.text {
background-color: black;
color: white;
font-size: 100px;
font-weight: bold;
font-family: sans-serif;
text-transform: uppercase;
position: relative;
user-select: none;
}

.text::before {
content: attr(data-text);
position: absolute;
color: white;
filter: blur(0.02em);
mix-blend-mode: difference;
}

.gradient {
position: absolute;
background: linear-gradient(45deg, #00f7ff, #f545d7, #0085ff, #6945f5, #005aff);
top: 0;
left: 0;
right: 0;
bottom: 0;
mix-blend-mode: multiply;
}

.spotlight {
position: absolute;
top: -100%;
left: -100%;
right: 0;
bottom: 0;
background: radial-gradient( circle, white, transparent 25%) center / 25% 25%, radial-gradient( circle, white, black 25%) center / 12.5% 12.5%;
animation: light 5s linear infinite;
mix-blend-mode: color-dodge;
}

@keyframes light {
to {
transform: translate(50%, 50%);
}
}
<div class="neon">
<span class="text" data-text="NIGHT SKY">NIGHT SKY</span>
<span class="gradient"></span>
<span class="spotlight"></span>
</div>

关于html - CSS:如何在混合模式下使用透明背景仅影响/被剪切到(文本)内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63857667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com